# Trama Ethernet

En redes informáticas, una trama Ethernet es una unidad de datos de protocolo de capa de enlace de datos y utiliza los mecanismos de transporte de capa física de Ethernet subyacentes. En otras palabras, una unidad de datos en un enlace Ethernet transporta una trama Ethernet como su carga útil.
Una trama Ethernet está precedida por un preámbulo y un delimitador de trama de inicio (SFD), que forman parte del paquete de Ethernet en la capa física. Cada trama Ethernet comienza con un encabezado que contiene las direcciones MAC de origen y destino como sus dos primeros campos. La sección central de la trama son los datos de carga útil, incluidos los encabezados de otros protocolos (por ejemplo, el Protocolo de Internet ) incluidos en la trama. La trama finaliza con una secuencia de verificación de trama (FCS), que es una verificación de redundancia cíclica de 32 bits utilizada para detectar cualquier corrupción de datos en tránsito.

## Estructura

Un paquete de datos en el cable y la trama como su carga útil consisten en datos binarios. Ethernet transmite datos con el byte más significativo primero; dentro de cada byte, sin embargo, el bit menos significativo se transmite primero.
La estructura interna de una trama Ethernet se especifica en la norma IEEE 802.3. La siguiente tabla muestra el paquete Ethernet completo y la trama interna, tal como se transmite, para el tamaño de la carga útil hasta la MTU de 1500 bytes. Algunas implementaciones de Gigabit Ethernet y otras variantes de mayor velocidad de Ethernet admiten tramas más grandes, conocidas como tramas jumbo.
802.3 paquete de Ethernet y estructura de marco :
| Capa | Preámbulo | Delimitador del inicio de la trama | MAC Destino | MAC Fuente | 802.1Q etiqueta (opcional) | Ethertype (Ethernet II) o longitud (IEEE 802.3) | Carga útil | Secuencia de control de trama (CRC de 32 bits) | Interpacket Vacío |
| | 7 bytes | 1 byte | 6 bytes | 6 bytes | (4 bytes) | 2 bytes | 46-1500 bytes | 4 bytes | 12 bytes |
| Capa 2 marco de Ethernet | | | ← 64–1522 bytes → | ← 64–1522 bytes → | ← 64–1522 bytes → | ← 64–1522 bytes → | ← 64–1522 bytes → | ← 64–1522 bytes → | |
| Capa 1 paquete de Ethernet & IPG | ← 72–1530 bytes → | ← 72–1530 bytes → | ← 72–1530 bytes → | ← 72–1530 bytes → | ← 72–1530 bytes → | ← 72–1530 bytes → | ← 72–1530 bytes → | ← 72–1530 bytes → | ← 12 bytes → |
La etiqueta 802.1Q opcional consume espacio adicional en la trama. Los tamaños de campo 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 cuadro. Esta opción no se ilustra aquí.

### Paquete Ethernet – capa física
#### Preámbulo y delimitador de cuadro de inicio

Un paquete Ethernet comienza con un preámbulo de siete bytes y un delimitador de trama de inicio (SFD) de un bytes.
El preámbulo consta de un patrón de 56 bits (siete bytes) de alternancia de 1 y 0 bits, que permite que los dispositivos de la red sincronicen fácilmente los relojes de sus receptores, proporcionando sincronización a nivel de bits. Le sigue el SFD para proporcionar sincronización a nivel de byte y 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 (no codificado) para el preámbulo junto con la parte SFD de la trama es 10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011; $^{:sections4.2.5and3.2.2}$Los bits se transmiten en orden, de izquierda a derecha. $^{:sections4.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 de Ethernet e indica el comienzo de la trama de 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. $^{:section4.2.5}$El SFD es seguido inmediatamente por la dirección MAC de destino, que es el primer campo en una trama de Ethernet. El SFD es la secuencia binaria 10101011 (0xD5, decimal 213 en el orden del primer bit LSB de Ethernet). $^{:sections3.2.2,3.3and4.2.6}$
Se requiere un circuito transceptor de capa física (PHY para abreviar) para conectar la MAC Ethernet al medio físico. La conexión entre PHY y MAC es independiente del medio físico y utiliza un bus de la familia de interfaces independientes de medios (MII, GMII, RGMII, SGMII, XGMII). Los chips transceptores Fast Ethernet utilizan el bus MII, que es un bus ancho de cuatro bits (un nibble), por lo que el preámbulo se representa con 14 instancias de 0x5 y el SFD es 0x5 0xD.

### Trama: capa de enlace de datos
#### Encabezado

El encabezado incluye direcciones MAC de origen y destino (cada una de seis bytes de longitud), el campo EtherType y, opcionalmente, una etiqueta IEEE 802.1Q o una etiqueta IEEE 802.1ad.
El campo EtherType tiene una longitud de dos bytes y se puede utilizar para dos propósitos diferentes. Los valores de 1500 y por debajo significan que se utiliza para indicar el tamaño de la carga útil en bytes, 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 está determinada por la ubicación del espacio entre paquetes y la secuencia de verificación de trama válida (FCS).
La etiqueta IEEE 802.1Q o la etiqueta IEEE 802.1ad, si está presente, es un campo de cuatro bytes que indica la pertenencia a la LAN virtual (VLAN) y la prioridad IEEE 802.1p . Los dos primeros bytes de la etiqueta se denominan el entificador de ID de protocolo de etiqueta (TPID) y se duplican como el campo EtherType, lo que indica que la trama está etiquetada con 802.1Q o 802.1ad. 802.1Q usa un TPID de 0x8100. 802.1ad usa un TPID de 0x88a8.

#### Carga útil

La carga útil es un campo de longitud variable. Su tamaño mínimo se rige por el requisito de una transmisión de trama mínima de 64 bytes (bytes). Teniendo en cuenta el encabezado y FCS, la carga útil mínima es de 42 bytes cuando una etiqueta 802.1Q está presente y 46 bytes cuando está ausente. Cuando la carga útil real es menor que el mínimo, los bytes de relleno se agregan en consecuencia. Los estándares IEEE especifican una carga útil máxima de 1500 bytes. Las tramas gigantes no estándar permiten cargas útiles más grandes en redes creadas para admitirlas.

#### Secuencia de verificación de tramas

La secuencia de verificación de tramas (FCS) es una verificación de redundancia cíclica (CRC) de cuatro bytes que permite la detección de datos erróneos dentro de la trama completa tal como se reciben en el lado del receptor. De acuerdo con el estándar, el valor de FCS se calcula en función de los campos de trama MAC protegidos: dirección de origen y destino, campo de longitud/tipo, datos de cliente MAC y relleno (es decir, todos los campos excepto FCS).
Según el estándar, este cálculo se realiza mediante el algoritmo de desplazamiento a la izquierda CRC32 BZIP2 (poli = 0x4C11DB7, CRC inicial = 0xFFFFFFFF, CRC se complementa posteriormente, valor de verificación = 0x38FB2284). El estándar establece que los datos se transmiten primero con el bit menos significativo (bit 0), mientras que FCS se transmite primero con el bit más significativo (bit 31). $^{:section3.2.9}$Una alternativa es calcular un CRC utilizando el desplazamiento a la derecha CRC32 (poli = 0xEDB88320, CRC inicial = 0xFFFFFFFF, CRC se complementa posteriormente, verifique el valor = 0x2144DF1C), lo que dará como resultado un CRC que es una inversión de bits del FCS, y transmitir tanto los datos como el bit menos significativo de CRC primero, lo que da como resultado transmisiones idénticas.
El estándar establece que el receptor debe calcular una nueva FCS a medida que se reciben los datos y luego comparar la FCS recibida con la 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 distinto de cero. (El resultado es distinto de cero porque el CRC se complementa posteriormente durante la generación del CRC). Dado que los datos se reciben primero con el bit menos significativo, y para evitar tener que almacenar bytes de datos en el búfer, el receptor suele utilizar el desplazamiento a la derecha CRC32. Esto hace que el valor de "verificar" (a veces llamado "verificación mágica") sea 0x2144DF1C.
Sin embargo, la implementación de hardware de un CRC con desplazamiento lógico a la derecha puede usar un registro de desplazamiento de retroalimentación lineal con desplazamiento a la izquierda como base para calcular el CRC, invirtiendo los bits y dando como resultado un valor de verificación de 0x38FB2284. Dado que la complementación del CRC se puede realizar 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 un desplazamiento a la izquierda implementación, el complemento de 0x38FB2284 = 0xC704DD7B.

### Fin de la trama: capa física

El final de una trama suele estar indicado por 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 pérdida de la portadora. Las capas físicas posteriores utilizan un fin de datos explícito o un símbolo o secuencia 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 transmitir una trama.

### Brecha entre paquetes – capa física

La brecha 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 bytes) de estado de línea inactiva antes de transmitir el siguiente paquete.

## Tipos

Diferenciación de tramas Ethernet :
| Tipo de trama | Ethertype o longitud | La carga útil comienza dos bytes |
| EthernetII | ≥ 1536 | Ningún |
| Novell sin procesar IEEE 802.3 | ≤ 1500 | 0xFFFF |
| IEEE 802.2 LLC | ≤ 1500 | Otro |
| IEEE 802.2 SNAP | ≤ 1500 | 0xAAAA |
Existen varios tipos de tramas Ethernet:
* El marco Ethernet II, o Ethernet versión 2, o marco DIX es el tipo más común en uso hoy en día, ya que a menudo lo usa directamente el Protocolo de Internet.
* Trama de variación no estándar IEEE 802.3 sin procesar de Novell
* Trama de control de enlace lógico (LLC) IEEE 802.2
* Trama del protocolo de acceso a subred (SNAP) IEEE 802.2
Los diferentes tipos de tramas tienen diferentes formatos y valores de MTU, pero pueden coexistir en el mismo medio físico. La diferenciación entre los tipos de tramas es posible según la tabla de la derecha.
Además, los cuatro tipos de tramas de Ethernet pueden contener opcionalmente una etiqueta IEEE 802.1Q para identificar a qué VLAN pertenece y su prioridad (calidad de servicio). Este encapsulado se define en la especificación IEEE 802.3ac y aumenta la trama máxima en 4 bytes.
La etiqueta IEEE 802.1Q, si está presente, se coloca entre la Dirección de origen y los campos EtherType o Longitud. Los dos primeros bytes de la etiqueta son el valor del identificador de protocolo de etiqueta (TPID) de 0x8100. Está ubicado en el mismo lugar que el campo EtherType/Length en tramas sin etiquetar, por lo que un valor de EtherType de 0x8100 significa que el marco está etiquetado y el verdadero EtherType/Length se encuentra después de la etiqueta Q. El TPID va seguido de dos bytes que contienen la información de control de etiquetas (TCI) (la prioridad IEEE 802.1p ( calidad de servicio ) y la identificación de VLAN). La etiqueta Q es seguida por el resto del marco, utilizando uno de los tipos descritos anteriormente.

### Ethernet II

El entramado Ethernet II (también conocido como DIX Ethernet, llamado así por DEC, Intel y Xerox, los principales participantes en su diseño), define el campo EtherType de dos bytes en un marco Ethernet, precedido por las direcciones MAC de destino y origen, que identifica un protocolo de capa superior encapsulado por los datos del marco. Por ejemplo, un valor EtherType de 0x0800 indica que la trama contiene un datagrama IPv4. Asimismo, un EtherType de 0x0806 indica una trama ARP, 0x86DD indica una trama IPv6 y 0x8100 indica la presencia de una etiqueta IEEE 802.1Q (como se describe anteriormente).
Como este estándar desarrollado por la industria pasó por un proceso formal de estandarización IEEE, el campo EtherType se cambió a un campo de longitud (datos) en el nuevo estándar 802.3. Dado que el destinatario aún necesita saber cómo interpretar el marco, el estándar requería un encabezado IEEE 802.2 para seguir la longitud y especificar el tipo. Muchos años después, el estándar 802.3x-1997 y versiones posteriores del estándar 802.3 aprobaron formalmente ambos tipos de tramas. El entramado de Ethernet II es el más común en las redes de área local de Ethernet, debido a su simplicidad y menor sobrecarga.
Para permitir que algunas tramas utilicen tramas Ethernet II y otras que utilicen la versión original de tramas 802.3 en el mismo segmento Ethernet, los valores de EtherType deben ser mayores o iguales a 1536 (0x0600). Se eligió ese valor porque la longitud máxima del campo de carga útil de una trama Ethernet 802.3 es de 1500 bytes (0x05DC). Por lo tanto, si el valor del campo es mayor o igual a 1536, la trama debe ser una trama Ethernet II, siendo ese campo un campo de tipo. Si es menor o igual a 1500, debe ser una trama IEEE 802.3, siendo ese campo un campo de longitud. Los valores entre 1500 y 1536, exclusivos, no están definidos. Esta convención permite que el software determine si una trama es una trama Ethernet II o una trama IEEE 802.3, lo que permite la coexistencia de ambos estándares en el mismo medio físico.

### Novell sin formato IEEE 802.3

El formato de trama 802.3 "en bruto" de Novell se basó en los primeros trabajos de IEEE 802.3. Novell utilizó esto como punto de partida para crear la primera implementación de su propio protocolo de red IPX a través de Ethernet. No usaron ningún encabezado LLC pero iniciaron el paquete IPX directamente después del campo de longitud. Esto no se ajusta al estándar IEEE 802.3, pero dado que IPX siempre tiene FF como los dos primeros bytes (mientras que en IEEE 802.2 LLC ese patrón es teóricamente posible pero extremadamente improbable), en la práctica esto suele coexistir en el cable con otras implementaciones de Ethernet. con la notable excepción de algunas formas tempranas de DECnet que se confundieron por esto.
Novell NetWare usó este tipo de trama de forma predeterminada hasta mediados de los años noventa, y dado que NetWare estaba muy extendido en ese momento, mientras que IP no lo estaba, en algún momento la mayor parte del tráfico de Ethernet del mundo pasó por 802.3 "en bruto" con IPX. Desde NetWare 4.10, el valor predeterminado de NetWare es IEEE 802.2 con LLC (NetWare Frame Type Ethernet_802.2) cuando se usa IPX.

### IEEE 802.2 LLC

Algunos protocolos, como los diseñados para la pila OSI, operan directamente sobre la encapsulación IEEE 802.2 LLC, que proporciona servicios de red orientados a la conexión y sin conexión.
Actualmente, la encapsulación IEEE 802.2 LLC no tiene un uso generalizado en las redes comunes, con la excepción de las grandes instalaciones corporativas de NetWare que aún no han migrado a NetWare sobre IP . En el pasado, muchas redes corporativas usaban IEEE 802.2 para admitir puentes de traducción transparentes entre redes Ethernet y Token Ring o FDDI.
Existe un estándar de Internet para encapsular el tráfico IPv4 en tramas IEEE 802.2 LLC SAP/SNAP. Casi nunca se implementa en Ethernet, aunque se usa en FDDI, Token Ring, IEEE 802.11 (a excepción de la banda de 5,9 GHz, donde usa EtherType) y otras LAN IEEE 802 . IPv6 también se puede transmitir a través de Ethernet usando IEEE 802.2 LLC SAP/SNAP, pero, de nuevo, casi nunca se usa.

### IEEE 802.2 SNAP

Al examinar el encabezado 802.2 LLC, es posible determinar si va seguido de un encabezado SNAP. El encabezado LLC incluye dos campos de dirección de ocho bits, denominados puntos de acceso al servicio (SAP) en la terminología OSI; cuando tanto el SAP de origen como el de destino se establecen en el valor 0xAA, el encabezado LLC va seguido de un encabezado SNAP. El encabezado SNAP permite que los valores EtherType se utilicen con todos los protocolos IEEE 802, además de admitir espacios de ID de protocolo privado.
En IEEE 802.3x-1997, el estándar IEEE Ethernet se modificó para permitir explícitamente el uso del campo de 16 bits después de las direcciones MAC como campo de longitud o campo de tipo.
El conjunto de protocolos AppleTalk v2 en Ethernet (" EtherTalk ") utiliza encapsulación IEEE 802.2 LLC + SNAP.

## Rendimiento máximo

Podemos calcular la sobrecarga del protocolo para Ethernet como un porcentaje (tamaño del paquete que incluye IPG)
    ${\text{Sobrecosto del protocolo}}={\frac {{\text{Tamaño del paquete}}-{\text{Tamaño de la carga útil}}}{\text{Tamaño del paquete}}}$
Podemos calcular la eficiencia del protocolo para Ethernet
    ${\text{Eficiencia del protocolo}}={\frac {\text{Tamaño de la carga útil}}{\text{Tamaño del paquete}}}$
La máxima eficiencia se logra con el tamaño de carga útil más grande permitido y es:
    ${\frac {1500}{1538}}=97.53\%$
para tramas sin etiquetar, dado que el tamaño del paquete es de 1500 bytes de carga útil como máximo + preámbulo de 8 bytes + encabezado de 14 bytes + tráiler de 4 bytes + espacio mínimo entre paquetes correspondiente a 12 bytes = 1538 bytes. La eficiencia máxima es:
    ${\frac {1500}{1542}}=97.28\%$
cuando se utiliza el etiquetado VLAN 802.1Q.
El rendimiento se puede calcular a partir de la eficiencia
    ${\text{Tasa de transmisión}}={\text{Eficiencia}}\times {\text{Tasa de bits neta}}\,\!$ ,
donde la tasa de bits neta de la capa física (la tasa de bits del cable) depende del estándar de la capa física de Ethernet y puede ser de 10 Mbit/s, 100 Mbit/s, 1 Gbit/s o 10 Gbit/s. Por consiguiente, el rendimiento máximo para 100BASE-TX Ethernet es de 97,53 Mbit/s sin 802.1Q y de 97,28 Mbit/s con 802.1Q.
La utilización del canal es un concepto que a menudo se confunde con la eficiencia del protocolo. Considera solo el uso del canal sin tener en cuenta la naturaleza de los datos transmitidos, ya sea carga útil o sobrecarga. En la capa física, el canal de enlace y el equipo no conocen la diferencia entre tramas de datos y de control. Podemos calcular la utilización del canal :
    ${\text{Uso del canal}}={\frac {\text{Tiempo dedicado a transmitir datos}}{\text{Tiempo total}}}$
El tiempo total considera el tiempo de ida y vuelta a lo largo del canal, el tiempo de procesamiento en los hosts y el tiempo de transmisión de datos y acuses de recibo. El tiempo dedicado a transmitir datos incluye los datos y reconocimientos.

## Tramas enanas (runt)

Una trama enana es una trama de Ethernet más pequeña que la longitud mínima de 64 bytes definida por IEEE 802.3. Las tramas enanas son causadas más comúnmente por colisiones; otras causas posibles son una tarjeta de red que no funciona correctamente, insuficiencia de datos en el búfer, discrepancia de dúplex o problemas de software.