Stop-and-wait ARQ

提供: tezos-wiki
2018年4月13日 (金) 13:08時点におけるAkita (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

ストップアンドウェイトARQ 交互ビットプロトコルとも呼ばれ、2つの接続されたデバイス間で情報を送信する電気通信方法です。これは、パケットが欠落したために情報が失われないこと、およびパケットが正しい順序で受信されることを保証します。それは最も簡単な[自動反復要求](ARQ)メカニズムです。 stop-and-wait ARQ送信者は一度に1つのフレームを送信します。送信ウィンドウサイズと受信ウィンドウサイズがそれぞれ1と1より大きい一般的な[スライディングウィンドウプロトコル]の特殊なケースです。各フレームを送信した後、送信者は確認応答(ACK)信号を受信するまで、それ以上フレームを送信しません。有効なフレームを受信した後、受信機はACKを送信する。タイムアウトと呼ばれる一定時間前にACKが送信者に届かない場合、送信者は同じフレームを再度送信します。 タイムアウトカウントダウンは、フレーム送信ごとにリセットされます。上記の動作は、Stop-and-Waitの基本的な例です。しかし、現実の実装は、設計の特定の問題に対処するためにさまざまです。

典型的には、トランスミッタは各フレームの最後にredundancy check番号を追加します。受信機は冗長検査番号を使用して損傷の可能性があるかどうかを確認します。受信側がフレームが良好であると判断した場合、ACKを送信します。受信機がフレームが破損していると判断した場合、受信機はフレームを破棄し、フレームが完全に失われたことを偽ったACKを送信しません。

1つの問題は、受信側によって送信されたACKが破損または紛失した場合です。この場合、送信側はACKを受信せず、タイムアウトし、フレームを再度送信します。受信機は同じフレームの2つのコピーを有し、第2のものが同じデータを運ぶシーケンスの複製フレームまたは次のフレームであるかどうかを知らない。

別の問題は、送信媒体が受信機に到達する前に送信機のタイムアウトが切れるような長いレイテンシを有する場合である。この場合、送信側は同じパケットを再送します。最終的に、受信者は同じフレームの2つのコピーを取得し、それぞれに対してACKを送信します。単一のACKを待っている送信者は、2つ目のACKがシーケンス内の次のフレームのものであると仮定すると問題を引き起こす2つのACKを受信します。

これらの問題を回避するために、最も一般的な解決策は、フレームのヘッダーに1ビットのシーケンス番号を定義することです。このシーケンス番号は、後続のフレームで交互に(0から1に)なります。受信機がACKを送るとき、それはそれが期待している次のパケットのシーケンス番号を含んでいます。このようにして、受信機は、フレームシーケンス番号が交互であるかどうかをチェックすることによって重複フレームを検出することができる。 2つの後続フレームが同じシーケンス番号を有する場合、それらは重複し、第2のフレームは破棄される。同様に、2つの後続のACKが同じシーケンス番号を参照する場合、それらは同じフレームを確認応答している。

ストップアンドウェイトARQは、ACKとデータが正常に受信された場合、パケット間の時間がトランジット時間の2倍(ターンアラウンドタイムがゼロになることが想定される)であるため、他のARQに比べて非効率的です。チャネル上のスループットは、できるだけ小さいものです。この問題を解決するために、一度に複数のパケットをより大きなシーケンス番号で送信し、セットに対して1つのACKを使用することができます。これは[Go-Back-N ARQ]とSelective Repeat ARQで行われます。

関連項目[編集]

ソース[編集]

http://wikipedia.org/