パリティチェック
パリティチェック では、各バイトに追加ビットであるパリティビット を1つ加えます。2種類あります:
パリティビットを追加して1の数を偶数(または奇数)にします。
偶数パリティ — バイト内の「1」の総数(パリティビットを含む)が偶数 である必要があります;
奇数パリティ — 「1」の総数が奇数 である必要があります。
例(偶数パリティ):データ 1011001 は「1」が4つあり既に偶数なので、パリティビットは 0 です:
parity bit + data
0 1011001
エラーを検出するには:受信者が「1」の数を数えます。偶数パリティで合意しているにもかかわらず、着信データに「1」が奇数 個含まれていれば、転送中にエラーが発生したことを意味します。
パリティチェックではすべてのエラーを検出することはできません。2ビットが反転した場合、总数は依然として正しいように見えることがあります。
** worked example.** 単一のパリティビットではエラーが発生したこと はわかりますが、どこで 発生したかはわかりません。パリティブロック 则は正確なビットを特定できます。複数のバイトをまとめて送信し、それぞれに行方向のパリティビットを付与し、下部に追加のパリティバイト を配置して各列のパリティビットを保持します。以下では偶数パリティを使用しており、転送中に1ビットが反転しました。それを見つけてください。
b1 b2 b3 b4 b5 | parity
byte 1 1 0 1 1 0 | 1
byte 2 0 1 1 0 1 | 1
byte 3 1 1 1 1 0 | 1 <- row: odd number of 1s
byte 4 0 0 1 1 0 | 0
------------------------------
parity 0 0 1 1 1 | 1
^ column b3: odd number of 1s
行 byte 3 は偶数パリティを破り、列 b3 も偶数パリティを破る。反転したビットはその交点にある:byte 3, bit b3 。これを1から0に戻すことでデータを修復する。単一ビット誤りの仮定に基づき、失敗した行と列がそのビットを特定するため、受信側は修正できる。複数ビット誤りは検出されなかったり、曖昧な結果を生んだりすることがある。
チェックサム
チェックサム は、送信前にすべてのデータから計算された値です。受信者は受信したデータからチェックサムを再度計算します。2つの値が一致しない場合、エラーが発生しており、データが再送信されます。
エコーチェック
In an echo check , the receiver sends the data back to the sender. The sender compares it with the original. If they differ, an error happened. (This needs the data to be sent twice, so it is slow.)
自動再送信要求 (ARQ)
自動再送信要求 (ARQ)は、確認メッセージ と呼ばれるメッセージを使用します。
カリキュラムではこれを自動再送要求と呼びます。自動再送リクエストは同じ手法の別の名前です。送信者はパケットを送信した際にタイムアウト タイマーを開始します。受信者は受け取ったパケットに対してエラーチェックを行います。チェックが通過すれば、肯定応答 を送信します。エラーを検出すれば、否定応答 を送信します。
ARQ: 肯定応答があれば進行し、否定応答またはタイムアウト occurred すれば送信者が再送信する
試してみよう — パケット4。 3つの別の場合について、パケット4が (A) 受信者のエラーチェックに合格する、(B) チェックに失敗する、または (C) 絶対に届かないとします。それぞれの場合について、受信者の応答と送信者の次のアクションを選択してください。
計算例のトレース。
場合
受信者
送信者
A
肯定応答を送信
受け取り、タイマー停止、次のパケット送信可能
B
否定応答を送信
受け取り、パケット4を再送信、タイマー再起動
C
確認すべきパケットなし
タイムアウト、パケット4を再送信、タイマー再起動
否定応答はタイマー期限前に再送を引き起こすことがあります。タイムアウト前に肯定応答が届かなければ、送信者は送信を繰り返します。タイマーは沈黙を処理し、パケットの喪失や応答の喪失を含みます。
転送 — 返信の喪失。 パケット4が到着し、チェックに合格した。受信者は正の応答を送信したが、この返信は失われた。タイマーが期限を過ぎたとき送信者はどうするか? タイムアウトはパケット4が損傷したことを証明するか?
解答。 送信者はパケット4を再送し、タイマーを再起動する。受信者はパケットが正常に届いたことを知っているが、送信者には確認がない。タイムアウトでは、パケットか返信かのどちらが失われたのか、あるいは遅延したのかは分からない。ARQは別の送信を要求するだけであり、損傷したビット自体を修復するものではない。エラーチェックを使用して、受信したパケットを受け取るかどうかを決定する。
チェックディジット
チェックディジット とは、数字の末尾に追加される桁であり、他の桁に基づいて計算されます。これは数字を入力する際 のミスを検出するために使用されます。
番号を入力すると、チェックディジットが再計算され、比較される。手法によってはこれらのエラーの一部を検出できるが、どのチェックディジットもすべての入力エラーを見逃さない:
誤って入力された数字 、
位置入れ替えミス (2つの桁の順序が逆になっている例:21を12と入力)、
省略された桁 または追加された余分な桁 、
音響的ミス (音が似ている数字、例:13と30)。
チェックディジットはバーコード やISBN(書籍番号)で使用されています。