2012-02-18 18 views
6

質問の間realationshipです:私たちは(0〜255)8ビット長さのシーケンス番号を使用してパイプラインを使用し、輸送のprotocollを持ってウィンドウサイズとシーケンス番号

最大ウィンドウとは何ですかサイズの送信者は使用できますか? (それがMUSE前に、送信者がネット上で送信することができますどのように多くのパケットACKを待つ?)

ゴーバック-Nの最大ウィンドウサイズは次のとおりです。2 = W^M -1、W = 255。

選択再送maximuウィンドウのサイズは、(2^M)/ 2 = W 128 = W。私にはわからない

が正しいとどの式Iは、使用しなければなりません。

ありがとうございました

+0

ここでプロトコルを設計していますか?またはそれには名前があります。その場合は、それを明記してください。あなたはTCPについて話しています、そうですか? – cxxl

答えて

2

これら2つのプロトコルは、それぞれ異なる問題があります。ゴー・バック・Nの場合

、あなたは正しいです。ウィンドウのサイズは255まで可能です(2^8-1は0から開始して送信するパケットの最後のseq番号です)。

しかし、セレクティブリピートプロトコルは、同じseq#を有する再送パケットを、既にackされたパケットと区別することができないので、ウィンドウサイズの最大値の半分までのウィンドウサイズの制限を有するが、以前のウィンドウでは、したがって、ウィンドウサイズは、seq#の半分の範囲になければならず、連続したウィンドウは互いにseq#を重複させることができません。

送信者がn個のパケットをウィンドウサイズ(最大:n-1)までプッシュし、累積ackがn個になるまでウィンドウをスライドさせないため、Go-Back-Nにはこの問題はありません。そして、これらの2つのプロトコルは異なる最大サイズのウィンドウを持っています。

注意:Go-Back-Nの場合、最大ウィンドウサイズは一意のシーケンス番号の最大数です - 1。ウィンドウが一意のシーケンス番号の最大数と等しい場合、すべての確認応答が失われた場合、受信側すべての再送信されたメッセージを個別のメッセージセットとして受け入れ、メッセージをそのアプリケーションに追加する時間を中継します。この不一致を避けるため、最大ウィンドウサイズ=一意のシーケンス番号の最大数 - 1です。この回答は、@noamgotのコメントに記載されている事実に従って更新されています。

+1

やあ、死者の中からこのポストを持って申し訳ありませんが、私はあなたの答えに問題があると信じている - GBNでウィンドウサイズは確かに、次の例を考えて255までのことではなく、256必要があります - 送信者は、パケット0-255を送りました(ウィンドウ全体)、受信者はそれらを取得し、ACKを送信します。残念ながら、ACKは失われてタイムアウトが発生した後に、送信者はそれらのパケットを再送します。受信機は0から始まるパケットの別のシーケンスを待つので、問題があります。ウィンドウサイズが255の場合は発生しません。これを見てみましょう:http://webmuseum.mi.fh-offenburg.de/index.php?view=exh&src=73 – noamgot