2

理論的には、最大 tcp 速度は min{rwnd,cwnd} / RTT です。ここで、cwnd は輻輳ウィンドウ サイズ、rwnd は受信ウィンドウ サイズです。cwnd が十分に大きいと仮定すると、rwnd/RTT になります。ここで、最大ウィンドウ サイズが 65K バイトの場合、次のようになります (一部のサイトからのこれらの計算を使用):

RTT 10 ms => TCP throughput = 52428000 bps = 52Mbps
RTT 20 ms => TCP throughput = 26214000 bps = 26Mbps
RTT 50 ms => TCP throughput = 10485600 bps = 10Mbps
RTT 100 ms => TCP throughput = 5242800 bps = 5.2Mbps
RTT 150 ms => TCP throughput = 3495200 bps = 4.3Mbps
RTT 200 ms => TCP throughput = 2621400 bps = 2.5Mbps
RTT 300 ms => TCP throughput = 1747600 bps = 1.7Mbps
RTT 500 ms => TCP throughput = 1048560 bps = 1Mbps

これはどのくらい正確ですか?RTT が 200 ミリ秒を超えている間、Web サイト (トレント、直接ダウンロードではなく) から 5 Mbps でダウンロードできるため、理論上の最大値を超えていますが、なぜこのようなことが起こるのでしょうか? ブラウザーはダウンロードに複数の TCP 接続を使用しますか?

また、rwnd バイトが 1 つ以上の TCP セグメント サイズになる可能性がある (そして確実にそうなる) ため、rwnd/RTT が実際にどこから来たのかを正確に知りたいと思います。 RTT は、送信されたすべてのセグメントから ACK を送受信するのに十分ではないため、rwnd/RTT は実際のスループットとはかなりかけ離れています。

4

2 に答える 2

3

最大ウィンドウサイズは65Kバイトではありません。最大ウィンドウサイズは65,535ウィンドウサイズ単位で、バイトの場合とそうでない場合があります

私はあなたの最後の質問に従うかどうかはよくわかりません。セグメントサイズは何かと何の関係がありますか?必要な数のセグメントを使用して、送信するデータを送信できます。

于 2012-12-19T18:01:15.407 に答える
2

どうすれば「こんなに早く」受け取れるのだろうと思っていることは、正しく理解できていますか?

あなたが述べた式は正しいです。ウィンドウと RTT によって帯域幅が決まります (他にも要因はありますが、ほとんどの場合、これらが重要です)。

しかし、私はあなたの数字について疑問に思っています。

広告 1) RTT について本当によろしいですか? これは、大陸横断でない限り、通常のダウンロードではかなり高いようです。ping を使用して RTT を確認します (たとえばping simtel.net、ホスト名を問題のホスト名に置き換えます)。私のhrping( http://www.cfos.de/ping ) (Windows 用) のような、より正確な ping ユーティリティを使用できます。

広告 2) ウィンドウのサイズは確かですか? 今日の 64k はかなり低く、最新のすべての OS は RFC 1323 ウィンドウ スケーリング ( http://en.wikipedia.org/wiki/TCP_window_scale_option )を通じてそれ以上のネゴシエーションを試みます。SG TCP/IP アナライザー ( http://www.speedguide.net/analyzer.php ) を使用して、RWIN を確認できます。接続を確認するためのもう 1 つの優れたツールは、Netalyzr ( http://netalyzr.icsi.berkeley.edu ) です。

測定値を見てみたいです。

于 2012-12-20T10:42:45.997 に答える