Correspondiente a este tema:
/programming/3613989/what-of-traffic-is-network-overhead-on-top-of-http-s-requests
El tamaño máximo de segmento (que no incluye los encabezados TCP o IP) generalmente se negocia entre las capas al tamaño de la MTU menos el tamaño de los encabezados. Para Ethernet, la MTU generalmente se configura a 1500 bytes. El encabezado TCP es de 160 bits o 20 bytes. La parte fija del encabezado IPv4 es de 160 bits o 20 bytes también. ... Así:
- para HTTP sobre TCP / IPv4
gastos generales = TCP + IP = 40 bytes
carga útil = 1500 - 40 = 1460 bytes
gastos generales% = 2% (40 * 100/1460)
Aquí hay resultados de 100 Mbit y 1 Gbit iperf en modo TCP con distribuciones predeterminadas de Debian:
[ 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
Puedo reducirlo a casi un 2% de gastos generales al aumentar MTU a 9000:
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 1.14 GBytes 982 Mbits/sec
¿Pero no debería ser aún menos?
overhead = TCP + IP = 40 bytes
payload = 9000 - 40 = 8960 bytes
overhead % = 0.4% (40 * 100 / 8960)
¿Por qué la "pérdida de ancho de banda" real es notablemente mayor que la teórica? Si la fórmula falta algo valioso?
Los gastos generales generalmente se calculan en función del tamaño total de los datos. De esa manera, la cifra coincide con el valor de eficiencia.
Para TCP sobre IPv4 sobre Ethernet que tiene (sin opciones de encabezado):
El tamaño máximo de paquete L3 de 1500 da como resultado un tamaño total de datos L1 de 1500 + 18 + 20 = 1538 bytes y un tamaño máximo de carga útil L4 de 1500-20-20 = 1460 bytes .
Con 9k cuadros gigantes (no 802.3), obtendría
Estos son valores teóricos del mejor de los casos . En la vida real, también tendrías un poco de sobrecarga de hardware y sistema operativo que afecta ligeramente el valor de eficiencia. Las características como la descarga y la dirección de interrupción multinúcleo pueden reducir la sobrecarga del procesamiento y acercarlo a las cifras teóricas (más relevante con NIC de mayor velocidad). Los que has medido parecen bastante realistas como ya señaló Pieter.
fuente