K.2 計算

TCPウィンドウサイズの微調整は、ネットワークリンク速度やネットワークレイテンシを含む、多数の要因に基づいて行われます。PlateSpin製品に関連する目的の場合、微調整の際のTCPウィンドウサイズの最初の選択は、次のような標準の計算式(インターネットやその他の場所で広く使用されています)に基づいて行われます。

ウィンドウサイズ(バイト)=((リンク速度(Mbps)/8)*遅延(秒))*1000*1024

たとえば、150ミリ秒の遅延のある54Mbpsのリンクでは、適切な初期ウィンドウサイズは次のようになります。

(54/8)*0.15*1000*1024 = 1,036,800バイト

10ミリ秒の遅延のある1000Mbpsのリンクでは、適切な初期ウィンドウサイズは次のようになります。

(1000/8)*.01*1000*1024 = 1,280,000バイト

ネットワークのレイテンシ値を取得するには、コマンドプロンプト(Windows)または端末(Linux)からpingを使用します。ping往復時間(RTT)はおそらく実際のレイテンシと異なっていますが、得られた値はこの方法で使用する分には十分な精度です。

以下に、Windows pingコマンドのサンプル出力を示します。これにより、レイテンシが平均で164 msであることがわかります。

ping 10.10.10.232 -n 5

Pinging 10.10.10.232 with 32 bytes of data:
Reply from 10.10.10.232: bytes=32 time=154ms TTL=61
Reply from 10.10.10.232: bytes=32 time=157ms TTL=61
Reply from 10.10.10.232: bytes=32 time=204ms TTL=61
Reply from 10.10.10.232: bytes=32 time=153ms TTL=61
Reply from 10.10.10.232: bytes=32 time=153ms TTL=61

Ping statistics for 10.10.10.232:
    Packets: Sent = 5, Received = 5, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 153ms, Maximum = 204ms, Average = 164ms

以下に、Linux pingコマンドのサンプル出力を示します。これにより、レイテンシが平均で319 msであることがわかります。

ping 10.10.10.232 -c 5

PING 10.10.10.232 (10.10.10.232) 56(84) bytes of data.
64 bytes from 10.10.10.232: icmp_seq=1 ttl=62 time=0.328 ms
64 bytes from 10.10.10.232: icmp_seq=2 ttl=62 time=0.280 ms
64 bytes from 10.10.10.232: icmp_seq=3 ttl=62 time=0.322 ms
64 bytes from 10.10.10.232: icmp_seq=4 ttl=62 time=0.349 ms
64 bytes from 10.10.10.232: icmp_seq=5 ttl=62 time=0.316 ms

--- 10.10.10.232 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.280/0.319/0.349/0.022 ms

実際には、レイテンシ値をより高精度で測定するために、-nまたは-cオプションを使用して、より多くのpingパケットを指定する必要があります。