0

A と B の間の通信中、 A が B にデータを送信しているとき、セグメント サイズは B のウィンドウ サイズに依存します。最初に、B がデータを正常に受信した後、ウィンドウ サイズを 2 倍にし、これが続きます。これで、B はその MSS を認識しました。そのため、セグメント サイズを A に送信する際に、MSS 値を超えないようにすることができます。では、なぜ B は最初に MSS を A に通知しなければならないのでしょうか。

4

2 に答える 2

8

セグメント サイズは、送信側と受信側がそれぞれ接続されているネットワークのデータ リンク層の MTU サイズによって異なります。

Path MTU Discovery を使用して、送信者と受信者の間の最小 MTU サイズを検出し、送信者と受信者の間の最適な最大セグメント サイズ (IP フラグメンテーションを回避する) を動的に決定できます (送信者と受信者の間のすべてのルーターが do_not_fragment ビットを尊重すると仮定)。 )。

フロー制御とスライディング ウィンドウを最大セグメント サイズと混同しているようです。


コメントに基づいて更新します。

Window size が MSS を超えることはできないということですか? 私はそれらの間の関係を見つけることができません。

いいえ、そうではありません。

ウィンドウ サイズは純粋に送信側と受信側のバッファ サイズに依存し、MSS は MTU に依存するということですか?

MSS と MTU サイズは、文脈によって意味が異なるため、文脈を必要とする用語です。

転送の方向は 1 つだけですが、次の 2 つの「ウィンドウ」を考慮する必要があります。

  • 受信ウィンドウFlow Controlを実装するために使用され、受信者によって維持および指定されます。これは、ある瞬間から次の瞬間へとバッファーするレシーバーの能力によって制約されます。受信ウィンドウは、送信者によって確認される前に送信できるデータの量を定義します。BDPも参照してください。MSS は、受信ウィンドウには影響しません。
  • 輻輳ウィンドウCongestion Controlの実装に使用されます。送信者によって維持および使用されます。輻輳ウィンドウ サイズは、事実上、MSS の倍数です。

A と B の両方のウィンドウ サイズは異なる場合がありますが、共通のリンクがあるため、MSS は同じままですか?

MSS が対称である必要はありません。A から B へのパスが、B から A へのパスと同じであるという保証や要件はありません。

理解を助ける図があるので、 http: //en.wikipedia.org/wiki/Transmission_Control_Protocolで記事全体を読むことをお勧めします。

于 2012-11-08T10:55:52.073 に答える
2

セグメントサイズはBのウィンドウサイズに依存します

そしてパスMTU。これら2つの数値の低い方が適用されます。パスMTUは、特定のパスに対して一定です。アドバタイズされたウィンドウサイズは、レシーバーのソケット受信バッファー、スロースタートなどの状態に応じて動的になります。

于 2012-11-09T02:21:13.810 に答える