このトピックに対応:
/programming/3613989/what-of-traffic-is-network-overhead-on-top-of-http-s-requests
最大セグメントサイズ(TCPまたはIPヘッダーを含まない)は、通常、レイヤー間でMTUのサイズからヘッダーサイズを引いた値にネゴシエートされます。イーサネットの場合、MTUは通常1500バイトに構成されます。TCPヘッダーは160ビット、つまり20バイトです。IPv4ヘッダーの固定部分は160ビット、つまり20バイトです。... したがって:
- HTTP over TCP / IPv4の場合
オーバーヘッド= TCP + IP = 40バイト
ペイロード= 1500〜40 = 1460バイト
オーバーヘッド%= 2%(40 * 100/1460)
デフォルトのDebianディストリビューションを使用したTCPモードでの100 Mbitおよび1Gbit iperfの結果は次のとおりです。
[ 5] local 10.0.51.1 port 5001 connected with 10.0.51.20 port 45009
[ 5] 0.0-10.0 sec 112 MBytes 94.1 Mbits/sec
[ 4] local 10.0.51.1 port 5001 connected with 10.0.51.94 port 35065
[ 4] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec
MTUを9000に上げることで、オーバーヘッドをほぼ2%に下げることができます。
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 1.14 GBytes 982 Mbits/sec
しかし、それはもっと少ないはずではありませんか?
overhead = TCP + IP = 40 bytes
payload = 9000 - 40 = 8960 bytes
overhead % = 0.4% (40 * 100 / 8960)
なぜ実際の「帯域幅損失」は理論よりも著しく大きいのですか?式に何か価値のあるものが欠けている場合は?