誤りの検出方法
パリティビット
【パリティビット】 パリティビットは、データ伝送中に生じた偶然の誤りを、ある程度検出できるようにするための手法です。データ(ビット列)の中に含まれる「1」の個数が偶数になるように制御したり、または奇数になるよう制御したりします。例えば、「1001」では「1」が2つあるので偶数ですが、これを「10011」とすることで「1」の数を奇数にして誤りを見つけやすくする、といったことを行います。
CRC(Cyclic Redundancy Check,巡回冗長検査)
CRCは、データの誤りを検出するための手法の一つです。送信するデータに対して特定の計算を行って得られる冗長なチェックデータ(CRC値)を、データと一緒に送ります。受信側では、同じ計算を行なって得られるCRC値と、送られてきたCRC値を比較します。もし誤りが生じていれば、これらの値が異なるはずなので、誤りを検出できます。
ハミングコード
ハミングコードは、通信データの誤りを検出するだけでなく、1ビットの誤りであれば修正も行える手法です。データビットと一緒に、特定のパターンに基づいて計算されたパリティビットを送ります。受信側でこれらのパリティビットとデータビットの関係が正しくない場合には、どのビットに誤りがあるかを判断し、修正することができます。
ブロック検査法 (Block Check Character, BCC):
ブロック検査法は、データを固定長のブロックに分けて送信し、各データブロックの最後に検査用のビット列(パリティビットやCRC値など)を追加して送信します。受信側では、各データブロックについて検査用のビット列を使って誤り検出を行います。こうすることで、大量のデータを安全に、かつ効率的に送受信することが可能になります。
リピート送信 (Automatic Repeat reQuest, ARQ)
リピート送信は、通信エラーや誤りが見つかった時に、同じデータを再送することでその誤りを回復する手法です。エラーを検出したデータブロックのみを再送するセレクティブリピートや、エラーを検出した以降のデータ全てを再送するゴーバックNなど、再送の範囲によりいくつかの方式が存在します。これらは単純な方式でありながら、確度の高い通信を実現することができます。