見出し画像

データ通信の歴史#31

5-9 誤り制御とは
 誤り制御とは、コンピュータ間通信の途中で失われた情報や壊れた情報を検知し、適切な状態に修正することを指します。

 通信環境は常に完璧とは限らず、様々な要因によってデータが損なわれる可能性があります。
 そのため、信頼性の高い通信を実現するために、誤り制御は必須と言えます。

誤り制御の仕組み
 誤り制御は、主に以下の2つのステップで構成されます。

 誤り検出: 送信データに誤りがないかどうかをチェックします。
 誤り訂正: 誤りがある場合、元のデータに復元します。

誤り検出
 誤り検出には、様々な方式があります。代表的なものは以下の2つです。
 垂直パリティチェック方式(Vertical Redundancy Check)


 キャラクタ単位に、誤りがないかチェックする方式です。送信時にキャラクタ内の1の数を数え、奇数個(あるいは偶数個) であるとき、キャラクタの終端に1を、そうでない時には0を付加します。それを受信時に1の数と照合することによって誤りを 検出します。非常に小さく簡単に実現できる方式ですが、偶数個の誤り時には、誤りを検出できない欠点があります。(図は偶数パリティの例です。チェックサム: 送信データの一部を計算し、送信データと一緒に送ります。受信側は、受信したデータからチェックサムを計算し、送信側からのチェックサムと比較することで、誤りがないかどうかを検出します。

水平パリティチェック方式(Longitudinal Redundancy Check)

ブロックごとにBCC(Block Check Character ブロックチェックキャラクタ)を付加して、誤りを検出する方式です(LRC)。キャラクタの各ビット桁ごとに1の数を数えBCCを付加します。一般に垂直パリティ方式と併せて使用されます。(図はLRC-E(偶数)の例です。一般的に偶数が用いられます。)
巡回冗長検査(CRC): 送信データに冗長な情報を付加します。受信側は、受信したデータと冗長情報からCRC値を計算し、あらかじめ決められたCRC値と比較することで、誤りがないかどうかを検出します。

誤り訂正

誤り訂正には、様々な方式があります。代表的なものは以下の2つです。

ハミング符号: 送信データに冗長な情報を付加します。受信側は、受信したデータと冗長情報から誤りの位置を特定し、元のデータに復元します。
リード・ソロモン符号: ハミング符号よりも多くの誤りを訂正することができます。

誤り制御の重要性
誤り制御は、様々な分野で重要な役割を果たしています。

 通信: インターネットや電話などの通信において、データの信頼性を向上するために使用されます。
 ストレージ: ハードディスクや光ディスクなどのストレージ装置において、データの損失を防ぐために使用されます。
放送: テレビやラジオなどの放送において、映像や音声の品質を向上するために使用されます。

誤り制御に関する情報
 誤り制御に関する情報は、以下のサイトなどで参照できます。

この記事が気に入ったらサポートをしてみませんか?