DCN-エラーの検出と訂正

ノイズ、クロストークなど、送信中にデータが破損するのに役立つ可能性のある多くの理由があります。上位層は、ネットワークアーキテクチャの一般化されたビューで機能し、実際のハードウェアデータ処理を認識しません。したがって、上位層は、システム間のエラーのない伝送を期待します。ほとんどのアプリケーションは、誤ったデータを受信すると期待どおりに機能しません。音声やビデオなどのアプリケーションはそれほど影響を受けない場合があり、エラーが発生しても正常に機能する場合があります。

データリンク層は、エラー制御メカニズムを使用して、フレーム(データビットストリーム)が特定のレベルの精度で送信されるようにします。ただし、エラーがどのように制御されるかを理解するには、どのタイプのエラーが発生する可能性があるかを知ることが不可欠です。

エラーの種類

エラーには次の3つのタイプがあります。

  • Single bit error

    フレーム内には、どこにいても破損しているビットが1つしかありません。

  • Multiple bits error

    フレームは、破損した状態の複数のビットで受信されます。

  • Burst error

    フレームに1つ以上の連続したビットが破損しています。

エラー制御メカニズムには、次の2つの方法があります。

  • エラー検出

  • エラー訂正

エラー検出

受信フレームのエラーは、パリティチェックと巡回冗長検査(CRC)によって検出されます。どちらの場合も、他端で受信したビットが送信されたものと同じであることを確認するために、実際のデータとともにいくつかの追加ビットが送信されます。受信側でのカウンターチェックが失敗した場合、ビットは破損していると見なされます。

パリティチェック

偶数パリティの場合は偶数、奇数パリティの場合は奇数にするために、元のビットと一緒に1つの余分なビットが送信されます。

フレームの作成中の送信者は、フレーム内の1の数をカウントします。たとえば、偶数パリティが使用され、1の数が偶数の場合、値0の1ビットが追加されます。このように、1の数は偶数のままです。1の数が奇数の場合、値1で少し偶数にするために追加されます。

受信機は単にフレーム内の1の数を数えます。1のカウントが偶数で、偶数パリティが使用されている場合、フレームは破損していないと見なされ、受け入れられます。1のカウントが奇数で、奇数パリティが使用されている場合でも、フレームは破損していません。

転送中に1ビットが反転した場合、受信機は1の数を数えることでそれを検出できます。しかし、複数のビットに誤りがあると、受信者がエラーを検出するのが非常に困難になります。

巡回冗長検査(CRC)

CRCは、受信したフレームに有効なデータが含まれているかどうかを検出するための別のアプローチです。この手法には、送信されるデータビットの2進除算が含まれます。除数は、多項式を使用して生成されます。送信者は、送信されるビットに対して除算演算を実行し、余りを計算します。実際のビットを送信する前に、送信者は実際のビットの最後に余りを追加します。実際のデータビットと余りはコードワードと呼ばれます。送信者はデータビットをコードワードとして送信します。

もう一方の端では、レシーバーは同じCRC除数を使用してコードワードの除算演算を実行します。余りにすべてゼロが含まれている場合、データビットが受け入れられます。それ以外の場合は、転送中にデータ破損が発生したと見なされます。

エラー訂正

デジタルの世界では、エラー訂正は2つの方法で実行できます。

  • Backward Error Correction  受信者は、受信したデータのエラーを検出すると、送信者にデータユニットの再送信を要求します。

  • Forward Error Correction  受信者は、受信したデータにエラーを検出すると、エラー訂正コードを実行します。これにより、受信者は自動回復し、ある種のエラーを訂正することができます。

最初の「後方エラー訂正」は単純で、再送信に費用がかからない場合にのみ効率的に使用できます。たとえば、光ファイバー。ただし、ワイヤレス送信の場合、再送信にはコストがかかりすぎる可能性があります。後者の場合、前方誤り訂正が使用されます。

データフレームのエラーを修正するには、受信者はフレームのどのビットが破損しているかを正確に知る必要があります。エラーのあるビットを見つけるために、冗長ビットがエラー検出のパリティビットとして使用されます。たとえば、ASCIIワード(7ビットデータ)を取得すると、8種類の情報が必要になる可能性があります。最初の7ビットはどのビットかを示します。エラーであり、エラーがないことを示すもう1ビットです。

m個のデータビットの場合、r個の冗長ビットが使用されます。rビットは2rの情報の組み合わせを提供できます。m + rビットコードワードでは、rビット自体が破損する可能性があります。したがって、使用されるrビットの数は、m + rビットの位置に加えてエラーのない情報、つまりm + r +1について通知する必要があります。