¿Cuál es el tamaño "en el cable" de una trama Ethernet? ¿1518 o 1542?

¿Cuál es el tamaño "en el cable" de una trama Ethernet? ¿1518 o 1542?

De acuerdo ala mesa aquí, dice que MTU = 1500 bytes y que la parte de carga útil es 1500 - 42 bytes o 1458 bytes (<- ¡esto en realidad es incorrecto!). Ahora, además de eso, debe agregar encabezados IPv4 y UDP, que son de 28 bytes (20 IP + 8 UDP). ¡Eso deja mi mensaje de aplicación máximo posible en 1430 bytes! Pero al buscar este número en Internet veo 1472. ¿Estoy haciendo mal este cálculo aquí?

Todo lo que quiero saber es el máximo de mensajes de aplicación que puedo enviar por cable sin riesgo de fragmentación. Definitivamente no es 1500 porque incluye los encabezados de los cuadros. ¿Alguien puede ayudar?


La confusión es que la CARGA ÚTIL puede llegar a tener hasta 1500 bytes y esa es la MTU. Entonces, ¿cuál es el tamaño del cable para una carga útil de 1500? De esa tabla puede tener un tamaño de hasta 1542 bytes.

Entonces, el máximo de mensajes de aplicación que puedo enviar es 1472 (1500 - 20 (ip) - 8 (udp)) para un máximo en el tamaño del cable de 1542. Me sorprende cómo las cosas pueden volverse tan complicadas cuando en realidad son simples. Y no tengo idea de cómo a alguien se le ocurrió el número 1518 si la tabla dice 1542.

Respuesta1

El diagrama en Wikipedia es horrible. Ojalá lo que estoy a punto de escribir sea más claro.


El maximocarga útilen 802.3 ethernet es de 1500 bytes.
Estos son los datos que estás intentando enviar por cable (y a qué se refiere la MTU).
[payload]<- 1500 bytes

La carga útil está encapsulada en unMarco Ethernet(que agrega la MAC de origen/destino, la etiqueta VLAN, la longitud y la suma de comprobación CRC. Esto es un total de 22 bytes de "cosas" adicionales
[SRC+DST+VLAN+LENGTH+[payload]+CRC]<- 1522 bytes

El marco se transmite a través del cable; antes de que su tarjeta Ethernet lo haga, básicamente se levanta y grita muy fuerte para asegurarse de que nadie más esté usando el cable (CSMA/CD). Este es elPreámbuloyDelimitador de inicio de fotograma(SFD): 8 bytes adicionales, por lo que ahora tenemos:
[Preamble+SFD+[Ethernet Frame]]<- 1530 bytes

Finalmente, cuando un transceptor Ethernet termina de enviar una trama, 802.3 requiere que transmita 12 bytes de silencio ("Interframe Gap") antes de que se le permita enviar la siguiente trama.
[Preamble+SFD+[Ethernet Frame]+Silence]<- 1542 bytes transmitidos por cable.


El Preámbulo, el SFD y el Espacio Intercuadro no cuentan como parte del marco. Son una estructura de soporte para el propio protocolo Ethernet.

La MTU se aplica a la carga útil: es la unidad de datos más grande que se puede incluir en el paquete. Por lo tanto, un paquete Ethernet con una MTU de 1500 bytes será en realidad una trama de 1522 bytes y 1542 bytes en el cable (suponiendo que haya una etiqueta vLAN).

Entonces la respuesta a tu pregunta...¿Cuál es el paquete más grande que puedo enviar a través de Ethernet 802.3 sin fragmentación?- es1500 bytes de datos de carga útil.

SIN EMBARGOEs posible que la capa Ethernet no sea su factor limitante. Para descubrir si algo en el camino está restringiendo la MTU para que sea inferior a 1500 bytes de datos de carga útil, utilice uno de los siguientes:

  • Windows: ping hostname -f -l sizeofdata(técnica mencionada por John K)
  • BSD:ping -D -s sizeofdata hostname
  • Linux:ping -M do -s sizeofdata hostname

El valor más grande de sizeofdataeso funciona es la MTU (sobre la ruta particular que toman sus datos).

Respuesta2

Depende de la cantidad de datos que coloques en el marco. Si coloca 1500 bytes de datos en un marco, el tamaño total del marco será de 1518 bytes. Con 1472 bytes de datos, terminará con un tamaño de cuadro total de 1500.

http://en.wikipedia.org/wiki/Ethernet_frame

Dicho esto, si realmente está interesado en probar la fragmentación, una buena forma de probarlo es con un buen ping antiguo con algunas opciones:

ping nombre de host -f -l tamaño de datos

El indicador -f hará que el ping falle si el paquete está fragmentado. La clave para entender aquí es "tamaño de datos", es la cantidad de datos que puede incluir en un mensaje sin fragmentarse, por lo que si envía una carga útil de 1500, comenzará a fragmentarse a medida que supere los 1500 bytes. Sin embargo, bájelo a 1472 (1500: la sobrecarga de 18 bytes) y verá que se realizan los pings.

Respuesta3

Para la trama Ethernet_II básica, el tamaño de la trama es 1518 bytes (dentro o fuera del cable). Esto se compone de 6 bytes para cada una de las direcciones de destino y de origen, 2 bytes para el campo de tipo entre 46 y 1500 bytes para la carga útil (en su caso, el paquete IP completo con su encabezado IP y encabezado UDP) y 4 bytes para la FCS. Además de esto, existe una restricción sobre el tamaño de una trama (64 bytes). Es por eso que el rango es de 46 bytes (agregue esto a las dos direcciones, el tipo y el FCS y obtendrá 64 bytes: 46+6+6+2+4=64).

Si el marco está en una red que admite múltiples VLAN y necesita etiquetar el marco con una etiqueta VLAN, se agrega un campo adicional antes del campo de tipo. Son 4 bytes. Esto ahora significa que el rango de tamaños de la carga útil se puede reducir en 4 bytes en el extremo inferior y seguir teniendo 64 bytes como mínimo. De ahí el 42. (Entonces 42+6+6+2+4 + 4 para la etiqueta vlan = 64)

Entonces, cuando el rango se escribe 1500-42 no significa 1500 menos 42, significa que cualquier valor entre 1500 y 42 bytes es válido. En el cable, esta trama etiquetada podría tener un tamaño de hasta 1522 bytes (si solo se usa una etiqueta, o 1526 si se usan dos etiquetas). Nada de esto explica el número 1542.

Para llegar a este número, debe considerar cómo se puede enviar una trama a través de Ethernet. No hay reloj en una LAN Ethernet, por lo que el transmisor de una trama envía una serie de unos y ceros para configurar un reloj. Esto se llama preámbulo. No todos los oyentes "escucharán" todo el preámbulo, pero la mayoría debería escuchar una parte del mismo. Para señalar el final del preámbulo, uno de los últimos 8 bits enviados se invierte para que en lugar de 10101010 se convierta en 10101011. Este byte se denomina inicio del delimitador de trama (SDF). Esto no es técnicamente útil para capturar fuera del cable, por lo que los 7 bytes del preámbulo y el SDF de 1 byte normalmente no se cuentan, pero si fueran nuestro 1518 original ahora serían 1526. Aún no 1542.

Después de enviar una trama, se impone un silencio en el cable que se denomina espacio entre tramas. Esto equivale a una transmisión de 12 bytes. Esto tampoco se cuenta ni se captura, pero si lo fuera nos llevaría a 1538 bytes. La única manera de llegar ahora a 1542 desde 1538 es decir que la trama está etiquetada (es decir, contiene la etiqueta del plan de 4 bytes). Uf, 1542 por fin.

Todo está en la terminología. Una trama estándar tiene 1518 bytes en el cable (en lo que respecta a cualquier dispositivo de captura). Una trama etiquetada (etiqueta única) tiene 1522 bytes en el cable. Estos ocupan 1538 bytes o 1542 bytes de espacio de transmisión en el cable.

Espero que ayude a aclarar...

Respuesta4

no, quieres que se produzca fragmentación, esta es la razón por la que el paquete debe fragmentarse, pero, por definición, tómalo así: una carretera de 2 vías con un montón de semirremolques frente a la misma carretera con un montón de pequeños coches inteligentes que van a Los semirremolques del mismo destino transportan más carga útil pero son más lentos y pueden congestionarse más fácilmente. Los autos más pequeños transportan menos pero viajan más rápido. MSS tampoco es lo mismo que MTU.

información relacionada