0

ABPのウィキペディアエントリ(http://en.wikipedia.org/wiki/Alternating_bit_protocol)から:

Aがメッセージを送信すると、同じシーケンス番号を含む確認応答をBから受信するまで、同じシーケンス番号でメッセージを継続的に再送信します。その場合、Aはシーケンス番号を補完(反転)し、次のメッセージの送信を開始します。

Bは、破損しておらず、シーケンス番号0のメッセージを受信すると、ACK0の送信を開始し、番号1の有効なメッセージを受信するまで送信を続けます。その後、ACK1などの送信を開始します。

詳細がわかりません。

私は口実と謝辞ですべてを理解していますが、プロセス自体は異なる出版物で異なって説明されています。

私の質問は次の2つに要約できます。

  1. 「...そしてそうし続ける」とはどういう意味ですか?これは、受信者が送信者からのアクティビティなしで2つの連続したackをackチャネルに送信できることを意味しますか?つまり、その時点では、送信者とまったく同期されていませんか?

  2. 「継続的に再送する」とはどういう意味ですか?上記と同じ-この再送信中、送信者は受信者から完全に独立していますか?

ここでそれが機能する方法の別の報道がありますが、それは再び矛盾する絵を与えます:http ://staff.science.uva.nl/~psf/specifications/abp.html

4

1 に答える 1

5

まず、両側がデータを連続的に送信するため、これは全二重回線です。このプロトコルは、停止待機 ARQに非常に似ています。ストップ アンド ウェイトの場合:

Side A:

 1. set index=0
 2. Send DATA(index) ,set timeout and waits for ACK 0 or timeout
  - If timeout back to 1
 3. If received ACK(index) set index^=1
 4. goto 2

Side B:

 1. Set index to 0
 2. If received DATA(index) Send ACK(index) and index^=1 //(xor)<br>
    else send ACK(index^1) 
 3. goto 2

ABP では、一度に 1 つのデータ パケットでもあります。違いは、ACK を受動的に待つのではなく、最初の ACK を受信するまで同じデータを送信し続けることです。このプロトコルはエラー回復が高速ですが、電力効率の点で非常に劣っています

ご質問について:

  1. 受信者は送信者と同期されます。

    B が破損していないシーケンス番号 0 のメッセージを受信すると、ACK0 の送信を開始し、番号 1 の有効なメッセージを受信するまで送信を続けます。

    シーケンス 0 で受信するすべてのパケットに対してこれを続けます。

  2. 送信者は、同じデータを何度も何度も送信し続けるという意味で受信者から部分的に独立していますが、ACK を受信すると次のシーケンスに移動するため、完全に独立しているわけではありません。

于 2012-11-25T12:29:05.890 に答える