コンピュータの予備知識 ネットワークシステムⅠ 第4回
インターネットでは いろいろなコンピュータが使われる 新しいもの,古いもの データが送られる途中で,何が起きるか分からな い ということを頭の隅に置いて,受講してください
知っているとは思うが… CPU メモリ バス CPUやメモリが接続され, 電気信号が流れる
バ ッ フ ァ buffer 速度の異なる機器の間に置く記憶装置(つまり,メモリの一種)で,速度の差を吸収する
キ ャ ッ シ ュ (1) cache バッファの一種(つまり,メモリの一種) 速度が速い装置が,遅い装置に同じデータを複数回要求するときに使われる
キ ャ ッ シ ュ (2) 最初は実際に読み出し,キャッシュに格納し,2回目以降はキャッシュ内のデータを用いる
キ ャ ッ シ ュ (3) 元のデータとキャッシュのデータが一致しなくなる場合がある ブラウザでも用いられる 履歴 proxy 更新前のページが 表示されることがある
キ ュ ー queue 待ち行列と呼ばれるデータ構造 バッファを実現する 格納された順に,読み出される FIFO : First In First Out
ス タ ッ ク stack 最後に格納したデータが,最初に読み出されるようなデータ構造 LIFO : Last In First Out 食堂のトレイの積み方
コンピュータ内のデータ表現(1) 0と1の組合せ 01000001(2進数 binary) 41 (4桁ずつ区切り16進数で表現) 41 (4桁ずつ区切り16進数で表現) 数値 65 (10進数として) 文字 A (アスキーコード) 文字については後述
デ ー タ 表 現 (2) ビット(bit) 2進数の1桁
デ ー タ 表 現 (2) バイト(byte) 8桁の2進数 いつも8桁ではない! コンピュータにより異なる ネットワークには,どんなコンピュータが接続されているか分からない オクテット(octet) オクテットは必ず8桁
デ ー タ 表 現 (3) 1バイトに入らないデータは,複数のバイトに格納される 格納する順序 ビッグエンディアン(big endian) リトルエンディアン(little endian)
デ ー タ 表 現 (4) (12ABEF)16 を100番地から格納 ハードウェアにより異なる
デ ー タ 表 現 (5) データは,すべて0/1で 文字は文字コード 文字を文字コード(数値)に対応させる 複数の対応がある(のが混乱の原因) 対応を間違えると,文字化け
デ ー タ 表 現 (6)
日 本 語 の 漢 字 コ ー ド 1字を16ビット JIS (ISO-2022-JP) Shift JIS EUC UNICODE 日本語だけではない
文 字 化 け (1) ブラウザの設定とデータの文字コードが異なっていると…
文 字 化 け (2) 例 IE
転送中のデータ誤り 先の文字化けは設定ミス
転 送 中 の デ ー タ の 誤 り 通信回線は外部から影響を受けることがある 雑音(ノイズ) 転送中のデータが変化することがある “0101010” を転送中に “0111010” となることがある
パ リ テ ィ (1) 転送するデータに含まれる“1”の数を数える 例 “0101010” 7ビットのデータ中に“1”は3つ
パ リ テ ィ (2) 転送するデータの最後に “1”の数が偶数なら“1”を “1”の数が奇数なら“0”を 付け加えて,データを送る 付け加えて,データを送る 例 データが “0101010”なら “01010100”を送る
パ リ テ ィ (3) つまり,送信するデータ中の“1”の数を奇数個にする “01010100” (最後に“0”を付ける) “01010100” (最後に“0”を付ける) “01010001” (最後に“1”を付ける) 受信側で“1”の数を数え,偶数個であったら,そのデータは誤りであることが分かる “01010101” (誤り!) 誤り検出
パ リ テ ィ (4) 転送中に2ビット変わったら,誤りを検出できない 例 “01010100” が “00110100” となっても, 受信側では誤りを検出できない
パ リ テ ィ (5) 以上のように,送信するデータ中の“1”の個数を奇数個にするものを 奇数パリティ “1”の個数を偶数個にする場合もある 偶数パリティ
パ リ テ ィ (6) 実際には,転送するデータを一定の大きさに区切って適用する 通信だけに用いられる手法ではない メモリから読み出したデータのチェック この手法を“パリティチェック(parity check)”と呼ぶ
パ リ テ ィ (7) ハミングコードチェック(hamming code check) 付加するビットを増やして,誤りの検出だけでなく,訂正も可能としたもの もちろん,完全なものではない
パ リ テ ィ (8) 誤り検出・訂正の手法は他にもある どのような方法があり,どのような特徴があるか? 我々の身のまわりでも使われている 音楽用CD
チ ェ ッ ク サ ム (1) 送信するデータの合計を求め,データだけでなく合計も送り,受信側でチェックに用いる 後で出てくる
チ ェ ッ ク サ ム (2) 例 24ビットのデータ オクテット(8ビット)ごとに区切り, 和を求める 00110011 例 24ビットのデータ オクテット(8ビット)ごとに区切り, 和を求める 00110011 01000100 データ 01110111 和 11101110 これも送信する
チ ェ ッ ク サ ム (3) 受信側でも同様にして,和を求める 送られてきた和と比較する 各オクテットでパリティチェックをすることもある 合計といっても,単純な和でない場合もある
誤 り を み つ け た ら 訂正できる手法を用いているなら,訂正 検出だけなら,どうするか? そのデータは使えない 再度,送信してもらう 再送が無理な場合は?
ま と め
ま と め(1) 特殊なメモリ バッファ キャッシュ データ構造 キュー スタック
ま と め(2) データ表現 コンピュータの内部ではビット列 ビット,バイト,オクテット 同じビット列が,数値データや文字データなどとして解釈される 文字コード 何種類かある
ま と め(3) 転送中にデータが変わることがある 送信したビット列と受信したビット列が異なる パリティ チェックサム データが変化していたらどうするか
こ ん な と こ ろ に も
I S B N (1) 参考文献1の裏表紙
I S B N (2) International Standard Book Number 流通している書籍に振られている一意の番号 日本だけでない 以前は10桁であったが,13桁になった 日本の出版社が出版した本は978で始まる
I S B N (3) 978-4-274-06876-8 グループ記号(国など) 4 出版者記号 274 書名記号 06876 グループ記号(国など) 4 出版者記号 274 書名記号 06876 検査数字(check digit) 8 からなる
I S B N (4) 検査数字 検査数字(最後の桁の数字)を除く,各桁の数字から計算で求める
I S B N (5) 一意の番号なので,本の注文の時に使える どこか間違えると別の本になるかも知れないので,検査数字を導入している