Data-communication-computer-network-error-detection-and-correction
DCN-エラーの検出と修正
ノイズ、クロストークなど、送信中にデータが破損するのに役立つ多くの理由があります。 上位層は、ネットワークアーキテクチャの一般化されたビューで動作し、実際のハードウェアデータ処理を認識しません。したがって、上位層は、システム間のエラーのない伝送を期待します。 ほとんどのアプリケーションは、誤ったデータを受け取った場合、期待どおりに機能しません。 音声やビデオなどのアプリケーションはそれほど影響を受けない場合があり、いくつかのエラーが発生しても正常に機能する場合があります。
データリンク層は、エラー制御メカニズムを使用して、フレーム(データビットストリーム)が一定の精度で送信されるようにします。 ただし、エラーの制御方法を理解するには、どのタイプのエラーが発生する可能性があるかを知ることが不可欠です。
エラーの種類
エラーには次の3つのタイプがあります。
- シングルビットエラー + シングルビットエラー +フレームには、破損しているビットが1つだけ存在します。
- 複数ビットエラー + Multiple bits error +破損状態の複数ビットのフレームを受信しました。
- バーストエラー + バーストエラー +フレームに1つ以上の連続したビットが破損しています。
エラー制御メカニズムには、次の2つの方法があります。
- エラー検出
- エラー修正
エラー検出
受信したフレームのエラーは、パリティチェックと巡回冗長チェック(CRC)によって検出されます。 どちらの場合も、実際のデータと一緒に送信される追加ビットはほとんどなく、相手側で受信したビットが送信されたビットと同じであることを確認します。 受信側でのカウンターチェックが失敗した場合、ビットは破損していると見なされます。
パリティチェック
偶数パリティの場合は偶数、奇数パリティの場合は奇数の1の数にするために、元のビットとともに1つの追加ビットが送信されます。
送信者は、フレームの作成中にその中の1の数をカウントします。 たとえば、偶数パリティが使用され、1の数が偶数の場合、値0の1ビットが追加されます。 このように1の数は偶数のままです。1の数が奇数の場合、偶数にするために値1のビットが追加されます。
レシーバーは、フレーム内の1の数を単純にカウントします。 1のカウントが偶数で、偶数パリティが使用されている場合、フレームは破損していないと見なされ、受け入れられます。 1のカウントが奇数で、奇数パリティが使用されている場合、フレームはまだ破損していません。
転送中に1ビットが反転した場合、受信機は1の数をカウントすることでそれを検出できます。 しかし、複数のビットが誤っている場合、レシーバーがエラーを検出することは非常に困難です。
巡回冗長検査(CRC)
CRCは、受信したフレームに有効なデータが含まれているかどうかを検出するための別のアプローチです。 この手法には、送信されるデータビットのバイナリ分割が含まれます。 除数は、多項式を使用して生成されます。 送信側は、送信されるビットに対して除算演算を実行し、剰余を計算します。 実際のビットを送信する前に、送信者は実際のビットの最後に残りを追加します。 実際のデータビットと剰余をコードワードと呼びます。 送信者は、データビットをコードワードとして送信します。
反対側では、受信機は同じCRC除数を使用してコードワードの除算演算を実行します。 残りにすべてゼロが含まれる場合、データビットが受け入れられます。それ以外の場合、転送中にデータ破損が発生したと見なされます。
エラー修正
デジタルの世界では、エラー修正は2つの方法で実行できます。
- *逆方向エラー訂正*受信側が受信データのエラーを検出すると、送信側にデータユニットの再送信を要求します。
- *前方エラー訂正*受信側は、受信したデータに何らかのエラーを検出すると、エラー訂正コードを実行します。これにより、自動回復およびある種のエラーの訂正が可能になります。
最初の1つである後方誤り訂正は単純で、再送信に費用がかからない場合にのみ効率的に使用できます。 たとえば、光ファイバー。 しかし、ワイヤレス送信の場合、再送信には費用がかかりすぎる可能性があります。 後者の場合、前方誤り訂正が使用されます。
データフレームのエラーを修正するには、受信機はフレームのどのビットが破損しているかを正確に知る必要があります。 エラーのビットを見つけるために、冗長ビットがエラー検出のパリティビットとして使用されます。たとえば、ASCIIワード(7ビットデータ)を取得すると、必要な8種類の情報があります。エラーであり、エラーがないことを示すもう1つのビットです。
mデータビットの場合、r冗長ビットが使用されます。 rビットは情報の2rの組み合わせを提供できます。 m + rビットコードワードでは、rビット自体が破損する可能性があります。 したがって、使用されるrビットの数は、m + rビットの位置とエラーなしの情報、つまり m + r + 1。