コンピュータの予備知識

コンピュータの予備知識
ネットワークシステムⅠ
第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進数で表現)
数値 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”を付ける)
 “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
01000100
01110111
和 11101110
データ
これも送信する
チ ェ ッ ク サ ム (3)

受信側でも同様にして,和を求める
 送られてきた和と比較する

各オクテットでパリティチェックをすることもある

合計といっても,単純な和でない場合もある
誤りをみつけたら


訂正できる手法を用いているなら,訂正
検出だけなら,どうするか?
 そのデータは使えない
 再度,送信してもらう
 再送が無理な場合は?
ま と め
ま と め(1)


特殊なメモリ
 バッファ
 キャッシュ
データ構造
 キュー
 スタック
ま と め(2)

データ表現
 コンピュータの内部ではビット列
 ビット,バイト,オクテット
 同じビット列が,数値データや文字データなど
として解釈される
 文字コード
 何種類かある
ま と め(3)

転送中にデータが変わることがある
 送信したビット列と受信したビット列が異なる
 パリティ
 チェックサム
 データが変化していたらどうするか
こんなところにも
I S B N (1)

参考文献1の裏表紙
I S B N (2)

International Standard Book Number

流通している書籍に振られている一意の番号

例 ISBN978-4-274-06876-8

日本だけでない

以前は10桁であったが,13桁になった

日本の出版社が出版した本は978で始まる
I S B N (3)

978-4-274-06876-8
 グループ記号(国など)
 出版者記号
 書名記号
 検査数字(check digit)
からなる
4
274
06876
8
I S B N (4)

検査数字
 検査数字(最後の桁の数字)を除く,各桁の数
字から計算で求める
I S B N (5)


一意の番号なので,本の注文の時に使える
どこか間違えると別の本になるかも知れないの
で,検査数字を導入している