💻基本情報技術者試験 テクノロジ系 技術要素・ネットワーク🌐
今回は、データの送受信中に起こる 「ビット誤り」 を検出する方法について
試験対策もかねて3つの代表的な方式をまとめます。
そもそも、ビット誤りとは?
通常、ビット(0か1)は電圧の違いで判別されますが、
データ転送中に電圧が変化し、「0」と「1」が入れ替わってしまうことがあります。
これがいわゆる 「ビット誤り」 と呼ばれる現象です。
この誤りを検出するために使われる仕組みが、以下の3つです。
① パリティチェック方式(Parity Check)
→ Parity(パリティ)= 奇数 or 偶数 の考え方を使って、ビットの誤りを見つける方式
送信するビット列の末尾に 検査用のビット(パリティビット) を付加して送信する
2種類の方式
偶数パリティ:ビット列全体の「1」の数が偶数になるように調整
奇数パリティ:ビット列全体の「1」の数が奇数になるように調整
※付加する位置には「垂直パリティ」「水平パリティ」「垂直水平パリティ」の3つがある
欠点
- 全てのビット誤りを見つけることは難しい
- ビット誤りが2か所以上同時に発生した場合は検出できないこともある
② CRC方式(巡回冗長検査/Cyclic Redundancy Check)
→データを多項式で扱い、割り算をして誤りを検出する方式
以下のような手順で処理を行う
- 送信側と受信側 で「生成多項式(あらかじめ決められた値)」を共有
- 送信側:データを生成多項式で割り、その 余り を検査用データとして付加
- 受信側:受信したデータを同じ生成多項式で割り、余りが一致しているかを確認
欠点
- 誤りの検出は可能だが、訂正はできない
- エラー時に「再送依頼」が必要になる
③ ハミング符号(Hamming Code)
→複数のパリティチェックを組み合わせて、どこに誤りが起きたかを特定する
1ビットの誤りであれば、 場所の特定、訂正 ができる
※傾向として、③は基本情報技術者試験にあまり出題されないとのこと!
まとめ
方法 | 検出 | 訂正 | 特徴 |
---|---|---|---|
パリティチェック | ○ | × | 最もシンプル、検出力は低め |
CRC方式 | ○ | × | 高精度、再送が必要 |
ハミング符号 | ○ | ○ | 1ビット誤りなら訂正もできる! |
以上、データ送受信時の誤り検出方式のまとめでした🌱
次回は【情報セキュリティ】に関して学習します^^
参考文献
-
『いちばんやさしい 基本情報技術者 絶対合格の教科書+出る順問題集』
著:高橋 京介 / 出版:SBクリエイティブ