パリティビットとは?誤り制御の種類をまとめて解説

誤り制御とは、ネットワークにおけるデータの誤り検出し、訂正を行うことを言います。

コンピュータの世界では1と0のみを扱えないため、全てのデータは1と0の集合で成り立っています。ネットワークを流れるときも同じで、1と0が電気信号に変換されてLANケーブルや電波の中を移動します。

しかし、電気信号はノイズなどにより乱れてしまうことがあります。この乱れによってデータ内容が変わってしまった場合、コンピュータはそのデータを正しく扱うことはできません。

そのため、変わってしまったデータが途中で変わっていないかを判別するための情報をデータに付与して送信することで、不正なデータかどうか判別できるようにします。

パリティ方式

パリティチェックでは、パリティビットという1ビットのデータを付加して誤りを検出します。

データは1と0のビット列で構成されています。その中の1の数が偶数もしくは奇数になるようパリティビットで調整することで、1ビットの誤りが生じたとき、「1の数が偶数(奇数)になっていないぞ?」という要領でデータの誤りを検出できるようになるのです。

シンプルな検出方法ですが、以下の欠点があります。

  • 2ビット以上の誤りが生じたときは検出できない
  • 誤りがあるビットを特定できない

水平垂直パリティ方式

ひとかたまりのデータに対してデータ単位とビット位置単位の両方からパリティチェックを行う方式です。パリティ方式の拡張版だと思ってもらえればいいでしょう。

文章だけだと分かりづらいので、「HEY」という文字列データ(UTF-8)に対して水平垂直パリティチェックを偶数パリティで行う場合を図で見てみます。

  • 一文字ずつビット列に直し、縦方向に並べます。
  • 縦方向にパリティビットを付加します。(ここまで通常のパリティ方式です)
  • 横方向にもパリティビットを付加します。

このように縦・横方向にパリティビットを付加することで、1ビットの誤りなら発生箇所の検出ができるようになります。

水平方向で検出された行、垂直方向で検出された列を辿っていけば、交差した部分が誤りのある箇所になります。この場合、そのビットを反転させて訂正します。

通常のパリティ方式よりも高精度なものになりますが、「2ビット以上の誤りが生じたときは位置の特定(訂正)ができない」という欠点があります。しかし、データのどこかに誤りがあるという検出はできます。

ハミング記号

ハミング記号では、4ビットのデータに対して定められた計算式に基づいて生成された3ビットの検査符号を付加する方式です。2ビットまでの誤り検出、1ビットの誤り訂正に対応しており、処理が高速なのが特徴です。

CRC方式

CRC方式はビット列を予め定めた式(生成多項式)で割り、その余りをビット列に付加して送信する方式です。受信側は送信側と同じ式で割り、余りが出ないことを確認して誤りチェックを行います。

コメント

タイトルとURLをコピーしました