Netstat を使用したオーバーヘッドの計算

Netstat を使用したオーバーヘッドの計算は、ブロードキャストやマルチキャスト トラフィックなど、他のネットワーク トラフィックがデータを歪めないように、静かなネットワーク上で実行する必要があります。

Netstat を使用してアプリケーションのネットワーク オーバーヘッドを計算するには

  1. Netstat を使用して現在のインターフェイス統計を取得します。
  2. アプリケーションを実行します。
  3. Netstat を使用してインターフェイスの統計情報を取得します。
  4. 2 つの Netstat 測定値の間で受信したバイト数を計算します。

次の例では、TTCP を使用して一度に 1 バイトずつ 10 バイトのデータを送信する手順を示します。

まず、アプリケーションの理論的なオーバーヘッドが計算されます。 このテストでは、すべてのパケットは 60 バイト (イーサネットの最小値) です。 この転送では、接続を設定するために 3 つのパケット、10 個のデータ パケット、10 個の受信確認パケット (遅延 ACK がほぼ毎回トリガーされます)、接続を正常に閉じるには 4 つのパケットが必要です。

これは、それぞれ 60 バイトの 27 パケット、または 1620 バイト (3+4+10+10)*60=1620) に相当します。 転送されるデータは 10 バイトだけなので、オーバーヘッドは 1610 バイトで、プロトコルのオーバーヘッドは 99% を超えています。

コマンド

netstat -e

Interface Statistics
                     Received     Sent
Bytes                392291400    444684566
Unicast packets      487627       570086
Non-unicast packets  1159163      11300
Discards             0            0
Errors               0            0
Unknown protocols    52812

ttcp -t -h0 -D -l1 -n10 -p9 172.31.71.99

ttcp-t: 10 bytes in 2168 real milliseconds = 0 KB/sec
ttcp-t: 10 I/O calls, msec/call = 216, calls/sec = 4, bytes/call = 1

netstat -e

Interface Statistics
                      Received     Sent
Bytes                 39229207     444685382
Unicast packets       487641       570100
Non-unicast packets   1159164      11301
Discards              0            0
Errors                0            0
Unknown protocols     52812

計算

送信済み: 816 バイト

受信済み: 674 バイト

合計バイト数: 1490

ユーザー バイト数: 10

オーバーヘッド: 1480/1490 = 99.3%

**Goodput: **= 5 バイト/秒 (または 40 ビット/秒)

Note

転送された実際のバイト数は、Netstat 値で埋め込みバイトが考慮されないため、理論上の値と一致しません。

 

アプリケーションの動作

高性能 Windows ソケット アプリケーション