Un paquete de datos en el cable y la trama como su carga útil consisten en datos binarios. Ethernet transmite los datos con el octeto (byte) más significativo primero; sin embargo, dentro de cada octeto, el bit menos significativo se transmite primero.
La estructura interna de una trama Ethernet se especifica en IEEE 802.3. La tabla siguiente muestra el paquete Ethernet completo y la trama que contiene, tal como se transmite, para el tamaño de la carga útil hasta la MTU de 1500 octetos. Algunas implementaciones de Gigabit Ethernet y otras variantes de Ethernet de mayor velocidad admiten tramas más grandes, conocidas como tramas jumbo.
Ethertype (Ethernet II) o longitud (IEEE 802.3) | Carga útil | Secuencia de comprobación de tramas (CRC de 32 bits) | Separación entre paquetes | ||||||
---|---|---|---|---|---|---|---|---|---|
7 octetos | 1 octeto | 6 octetos | 6 octetos | (4 octetos) | 2 octetos | 46-1500 octetos | 4 octetos | 12 octetos | |
Trama Ethernet de capa 2 | ← 64-1522 octetos → | ||||||||
Paquete Ethernet de capa 1 & IPG | ← 72-1530 octetos → | ← 12 octetos → |
La etiqueta opcional 802.1Q opcional consume espacio adicional en el marco. Los tamaños de los campos para esta opción se muestran entre paréntesis en la tabla anterior. IEEE 802.1ad (Q-in-Q) permite múltiples etiquetas en cada trama. Esta opción no se ilustra aquí.
Paquete Ethernet – capa físicaEditar
Preámbulo y delimitador de inicio de tramaEditar
Un paquete Ethernet comienza con un preámbulo de siete octetos y un delimitador de inicio de trama (SFD) de un octeto.
El preámbulo consiste en un patrón de 56 bits (siete octetos) de bits 1 y 0 alternados, lo que permite a los dispositivos de la red sincronizar fácilmente sus relojes receptores, proporcionando una sincronización a nivel de bits. Le sigue el SFD para proporcionar una sincronización a nivel de bytes y para marcar una nueva trama entrante. Para las variantes de Ethernet que transmiten bits en serie en lugar de símbolos más grandes, el patrón de bits en el cable (sin codificar) para el preámbulo junto con la parte SFD de la trama es 10101010 10101010 10101010 10101010 10101010 10101010 10101011;:secciones 4.2.5 y 3.2.2 Los bits se transmiten en orden, de izquierda a derecha.:secciones 4.2.5
El SFD es el valor de ocho bits (un byte) que marca el final del preámbulo, que es el primer campo de un paquete Ethernet, e indica el comienzo de la trama Ethernet. El SFD está diseñado para romper el patrón de bits del preámbulo y señalar el inicio de la trama real.:sección 4.2.5 Al SFD le sigue inmediatamente la dirección MAC de destino, que es el primer campo de una trama Ethernet. El SFD es la secuencia binaria 10101011 (0xD5, decimal 213 en el ordenamiento del primer bit de Ethernet).:secciones 3.2.2, 3.3 y 4.2.6
Se requiere un circuito transceptor de capa física (PHY para abreviar) para conectar la MAC de Ethernet al medio físico. La conexión entre un PHY y una MAC es independiente del medio físico y utiliza un bus de la familia de interfaces independientes del medio (MII, GMII, RGMII, SGMII, XGMII). Los chips transceptores Fast Ethernet utilizan el bus MII, que es un bus de cuatro bits (un nibble) de ancho, por lo que el preámbulo se representa como 14 instancias de 0xA, y el SFD es 0xA 0xB (como nibbles). Los chips transceptores Gigabit Ethernet utilizan el bus GMII, que es una interfaz de ocho bits de ancho, por lo que la secuencia del preámbulo seguida del SFD sería 0x55 0x55 0x55 0x55 0x55 0xD5 (como bytes).
Cuadro – capa de enlace de datosEditar
CabeceraEditar
La cabecera presenta las direcciones MAC de destino y de origen (cada una de seis octetos de longitud), el campo EtherType y, opcionalmente, una etiqueta IEEE 802.1Q o IEEE 802.1ad.
El campo EtherType tiene dos octetos de longitud y puede utilizarse para dos propósitos diferentes. Los valores de 1500 e inferiores significan que se utiliza para indicar el tamaño de la carga útil en octetos, mientras que los valores de 1536 y superiores indican que se utiliza como EtherType, para indicar qué protocolo está encapsulado en la carga útil de la trama. Cuando se utiliza como EtherType, la longitud de la trama viene determinada por la ubicación del hueco entre paquetes y la secuencia de comprobación de trama (FCS) válida.
La etiqueta IEEE 802.1Q o IEEE 802.1ad, si está presente, es un campo de cuatro octetos que indica la pertenencia a una LAN virtual (VLAN) y la prioridad IEEE 802.1p. Los dos primeros octetos de la etiqueta se denominan Tag Protocol IDentifier (TPID) y se duplican como el campo EtherType que indica que la trama está etiquetada con 802.1Q o 802.1ad. 802.1Q utiliza un TPID de 0x8100. 802.1ad utiliza un TPID de 0x88a8.
PayloadEdit
La carga útil mínima es de 42 octetos cuando hay una etiqueta 802.1Q y de 46 octetos cuando no la hay. Cuando la carga útil real es menor, se añaden los bytes de relleno correspondientes. La carga útil máxima es de 1500 octetos. Las tramas jumbo no estándar permiten un tamaño máximo de carga útil mayor.
Secuencia de comprobación de tramasEditar
La secuencia de comprobación de tramas (FCS) es una comprobación de redundancia cíclica (CRC) de cuatro octetos que permite detectar datos corruptos dentro de la trama completa tal y como se recibe en el lado del receptor. Según la norma, el valor de la FCS se calcula en función de los campos protegidos de la trama MAC: dirección de origen y destino, campo de longitud/tipo, datos del cliente MAC y relleno (es decir, todos los campos excepto la FCS).
Por la norma, este cálculo se realiza utilizando el algoritmo CRC32 BZIP2 de desplazamiento a la izquierda (poli = 0x4C11DB7, CRC inicial = 0xFFFFFF, CRC se poscomplementa, valor de verificación = 0x38FB2284). La norma establece que los datos se transmiten primero con el bit menos significativo (bit 0), mientras que el FCS se transmite primero con el bit más significativo (bit 31).:sección 3.2.9 Una alternativa es calcular un CRC utilizando el CRC32 de desplazamiento a la derecha (poly = 0xEDB88320, CRC inicial = 0xFFFFFF, CRC es poscomplementado, valor de verificación = 0x2144DF1C), lo que dará como resultado un CRC que es una inversión de bits del FCS, y transmitir tanto los datos como el CRC con el bit menos significativo primero, dando como resultado transmisiones idénticas.
La norma establece que el receptor debe calcular un nuevo FCS a medida que se reciben los datos y luego comparar el FCS recibido con el FCS que el receptor ha calculado. Una alternativa es calcular un CRC tanto en los datos recibidos como en el FCS, lo que dará como resultado un valor de «verificación» fijo no nulo. (El resultado es distinto de cero porque el CRC se poscomplementa durante la generación del CRC). Dado que los datos se reciben primero con el bit menos significativo, y para evitar tener que almacenar octetos de datos en el búfer, el receptor suele utilizar el CRC32 desplazado a la derecha. Esto hace que el valor de «verificación» (a veces llamado «comprobación mágica») sea 0x2144DF1C.
Sin embargo, la implementación de hardware de un CRC lógicamente desplazado a la derecha puede utilizar un registro de desplazamiento de retroalimentación lineal desplazado a la izquierda como base para el cálculo del CRC, invirtiendo los bits y dando como resultado un valor de verificación de 0x38FB2284. Dado que la complementación del CRC puede realizarse después del cálculo y durante la transmisión, lo que queda en el registro de hardware es un resultado no complementado, por lo que el residuo para una implementación de desplazamiento a la derecha sería el complemento de 0x2144DF1C = 0xDEBB20E3, y para una implementación de desplazamiento a la izquierda, el complemento de 0x38FB2284 = 0xC704DD7B.
Final de trama – capa físicaEditar
El final de una trama suele indicarse mediante el símbolo de fin de flujo de datos en la capa física o por la pérdida de la señal portadora; un ejemplo es 10BASE-T, donde la estación receptora detecta el final de una trama transmitida por la pérdida de la portadora. Las capas físicas posteriores utilizan un símbolo o secuencia explícita de fin de datos o de fin de flujo para evitar la ambigüedad, especialmente cuando la portadora se envía continuamente entre tramas; un ejemplo es Gigabit Ethernet con su esquema de codificación 8b/10b que utiliza símbolos especiales que se transmiten antes y después de la transmisión de una trama.
Desfase entre paquetes – capa físicaEditar
El desfase entre paquetes (IPG) es el tiempo de inactividad entre paquetes. Después de enviar un paquete, los transmisores deben transmitir un mínimo de 96 bits (12 octetos) de estado de línea inactiva antes de transmitir el siguiente paquete.