Entsprechend diesem Thema:
/programming/3613989/what-of-traffic-is-network-overhead-on-top-of-http-s-requests
Die maximale Segmentgröße (ohne TCP- oder IP-Header) wird normalerweise zwischen den Layern auf die Größe der MTU abzüglich der Headergröße ausgehandelt. Für Ethernet ist MTU normalerweise auf 1500 Bytes konfiguriert. Der TCP-Header ist 160 Bit oder 20 Byte. Der feste Teil des IPv4-Headers besteht aus 160 Bit oder 20 Byte. .... Somit:
- für HTTP über TCP / IPv4
Overhead = TCP + IP = 40 Bytes
Nutzlast = 1500 - 40 = 1460 Bytes
Overhead% = 2% (40 * 100/1460)
Hier sind 100 Mbit und 1 Gbit iperf Ergebnisse im TCP-Modus mit Standard-Debian-Distributionen:
[ 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
Ich kann den Overhead auf fast 2% senken, indem ich die MTU auf 9000 erhöhe:
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 1.14 GBytes 982 Mbits/sec
Aber sollte es nicht noch weniger sein?
overhead = TCP + IP = 40 bytes
payload = 9000 - 40 = 8960 bytes
overhead % = 0.4% (40 * 100 / 8960)
Warum ist der tatsächliche "Bandbreitenverlust" deutlich größer als der theoretische? Fehlt der Formel etwas Wertvolles?