選択的再送ARQ

選択的再送ARQまたは選択的拒否ARQは信頼性の高い通信におけるシーケンス番号と再送を管理するために使用される自動再送要求(ARQ)プロトコルの特定のインスタンスです

要約

選択的再送は自動再送要求(ARQ)の一部です。選択的再送では、送信者はGo-Back-N ARQのように受信側からの個別のACKを待つ必要がなく、ウィンドウサイズで指定された数のフレームを送信します。受信側は1つのフレームを選択的に拒否することができ、そのフレームのみを再送信できます。これは、その時点からすべてのフレームを再送信する必要がある他の形式のARQとは対照的です。受信側は順序が乱れたフレームを受け入れ、バッファリングします。送信側はタイムアウトしたフレームを個別に再送信します

概念

メッセージユニットの配信と確認のためのプロトコルとして使用することも、細分化されたメッセージサブユニットの配信のためのプロトコルとして使用することもできます

メッセージ配信プロトコルとして使用する場合、送信プロセスはフレームロス後も、ウィンドウサイズで指定された数のフレームを送信し続けます。Go -Back-N ARQとは異なり、受信プロセスは最初のエラー後も送信されたフレームの受信と確認応答を継続します。これは、送信ウィンドウサイズと受信ウィンドウサイズがどちらも1より大きい スライディングウィンドウプロトコルの一般的なケースです。

受信側プロセスは、受信していない最初のフレームのシーケンス番号を記録し、送信する確認応答(ACK)ごとにその番号を送信します。送信側からのフレームが受信側に到達しない場合、送信側はウィンドウが空になるまで後続のフレームを送信し続けます。受信側は、受信ウィンドウが空になるまで後続のフレームを送信し続け、そのたびに、最も古い欠落フレームのシーケンス番号を含むACKで応答します。送信側はウィンドウ内のすべてのフレームを送信すると、ACKで指定されたフレーム番号を再送信し、中断したところから処理を続行します。

送信ウィンドウと受信ウィンドウのサイズは等しく、最大シーケンス番号の半分(シーケンス番号は0からn -1までと仮定)でなければなりません。これは、パケットが破棄されるあらゆるケースにおいて誤通信を回避するためです。これを理解するために、すべてのACKが破棄された場合を考えてみましょう。受信ウィンドウが最大シーケンス番号の半分よりも大きい場合、タイムアウト後に存在するパケットの一部、あるいはすべてが重複パケットとして認識されません。送信者は、ACKが返されるたびにウィンドウを移動します。[ 1 ]

細分化されたメッセージを配信するためのプロトコルとして使用する場合、動作は多少異なります。メッセージの長さが可変である可能性のある非連続チャネルでは、標準 ARQ またはハイブリッド ARQ プロトコルはメッセージを単一のユニットとして扱うことができます。あるいは、選択的再送を基本 ARQ メカニズムと組み合わせて使用​​する場合もあります。このメカニズムでは、パケット分割と呼ばれるプロセスで、メッセージが最初にサブブロック (通常は固定長) に分割されます。したがって、元の可変長メッセージは、可変数のサブブロックの連結として表されます。標準 ARQ では、メッセージ全体が確認応答 (ACK) または否定応答 (NAK) されますが、選択的送信を行う ARQ では、ACK 応答に、正常に受信された各サブブロックの ID を示すビット フラグが追加で付加されます。細分化されたメッセージの選択的再送を行う ARQ では、各再送の長さが短縮され、リンクされたサブブロックのみを含めるだけで済みます。

可変長メッセージを扱うほとんどのチャネルモデルでは、エラーのない受信確率はメッセージ長の増加に反比例して減少します。つまり、短いメッセージの方が長いメッセージよりも受信しやすいということです。そのため、可変長メッセージを扱う標準的なARQ技術では、各繰り返しがメッセージ全体の長さとなるため、長いメッセージの配信が困難になります。可変長メッセージに選択的再送を適用すると、正常に配信されたサブブロックが各送信後に保持され、後続の送信における未処理のサブブロックの数が減少するため、長いメッセージの配信の困難さは完全に解消されます。選択的再送はUDP送信に実装されています。

擬似コード

これらの例では、シーケンス番号とリクエスト番号が無限にあることを想定しています。[ 2 ]

N  := ウィンドウサイズ Rn  := リクエスト番号 Sn  := シーケンス番号 Sb  := シーケンスベース Sm  := シーケンス最大値 buffer[]  := 順序外パケットを格納するバッファ 関数の受信側Rn  := 0 バッファ := 空です 次のことを永続的に実行します。 受信したパケットにエラーがなく、Sn = Rnの場合 パケットを受け入れ、上位層に送信する Rn  := Rn + 1 バッファ[Rn]が存在する バッファからパケットを受け取り、上位層に送信する バッファからパケットRnを削除する Rn  := Rn + 1 そうでない場合、受信したパケットにエラーがなく、Sn > Rnの場合、 パケットを位置Snにバッファリングします パケットを無視Rn のリクエストを送信関数の送信元Sb  :=0、 Sm  := N +1 、バッファ :=空です。 以下の手順を永久に繰り返します。 Rn > Sb となるリクエスト番号を受け取った場合はSm  := ( SmSb ) + Rn Sb  := RnSn < Rn のパケットをバッファから削除する送信中のパケットがない場合SbSn < Sm となるパケットを送信する 送信したパケットをバッファに保存する バッファ内のパケットSnについて、パケットSnのタイムアウトが発生した場合 パケットSnを再送信する

ウィンドウサイズの選択(N

選択的繰り返し ARQ で Nの値を選択する際には、いくつか留意すべき点があります。

  1. 送信者は、受信側が処理できる速度よりも速く送信してはなりません。N、受信側が順序不同のパケットを処理およびバッファリングできる能力によって制限される必要があります。
  2. 重複パケットや確認応答の欠落を検出する際の曖昧さを避けるために、 Nはシーケンス番号の総数の半分未満でなければならない(シーケンス番号が0からシーケンス番号空間の最大値まで番号付けされている場合)。[ 1 ]
  3. (1)と(2)の制約を考慮して、スループットを最大化するためにNを可能な限り大きく選択する。[ 3 ]

伝送制御プロトコルは、パケットの配信が保証されないインターネットプロトコル上でのデータの信頼性の高い伝送を確保するために、 Go-Back-N ARQの変種を使用します。選択的確認応答(SACK)拡張機能を使用すると、選択的再送ARQも使用できます

ITU -T G.hn規格は、既存の家庭用配線電力線、電話線、同軸ケーブル)を用いて高速(最大1ギガビット/秒)のローカルエリアネットワークを構築する方法を提供し、ノイズの多い媒体上で信頼性の高い伝送を確保するために選択的再送ARQ(Selective Repeat ARQ)を採用しています。G.hnパケットセグメンテーションを用いてメッセージをより小さな単位に分割し、各メッセージが正しく受信される確率を高めます。

高周波 (HF) 無線データ通信用の STANAG 5066 プロファイルでは、最大ウィンドウ サイズが 128 プロトコル データ ユニット (PDU) の選択的繰り返し ARQ を使用し ます

参照

参考文献

  1. ^ a b Tanenbaum, Andrew S. (2003). Computer Networks (4th ed.). Prentice Hall. ISBN 0-13-066102-3
  2. ^黒瀬、ジェームズ・F.、キース・W・ロス著『コンピュータネットワーキング:トップダウンアプローチISBN 0-321-49770-8
  3. ^ピーター・マルバッハ著「ARQプロトコル」(PDF)2013年8月24日閲覧

参考文献