Trama de Ethernet


En redes de computadoras , una trama de 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. [1]

Una trama Ethernet está precedida por un preámbulo y un delimitador de trama inicial (SFD), que son parte del paquete Ethernet en la capa física . Cada trama de Ethernet comienza con un encabezado de Ethernet, que contiene las direcciones MAC de origen y destino como sus dos primeros campos. La sección central de la trama son datos de carga útil, incluidos los encabezados de otros protocolos (por ejemplo, Protocolo de Internet ) que se incluyen en la trama. La trama termina con una secuencia de verificación de tramas (FCS), que es una verificación de redundancia cíclica de 32 bits que se utiliza para detectar cualquier corrupción de datos en tránsito.

Un paquete de datos en el cable y la trama como su carga útil constan de datos binarios. Ethernet transmite datos con el octeto (byte) más significativo primero; dentro de cada octeto, sin embargo, el bit menos significativo se transmite primero. [a]

La estructura interna de una trama Ethernet se especifica en IEEE 802.3. [1] 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 octetos. [b] Algunas implementaciones de Gigabit Ethernet y otras variantes de Ethernet de mayor velocidad admiten tramas más grandes, conocidas como tramas gigantes .

La etiqueta 802.1Q opcional consume espacio adicional en el marco. 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 fotograma inicial

Una trama de Ethernet dentro de un paquete de Ethernet, con SFD que marca el final del preámbulo del paquete e indica el comienzo de la trama. [3]

Un paquete Ethernet comienza con un preámbulo de siete octetos y un delimitador de trama de inicio de un octeto (SFD). [C]

El preámbulo consta de un patrón de 56 bits (siete bytes) de bits 1 y 0 alternos, lo que permite a los dispositivos de la red sincronizar fácilmente los relojes de su receptor, proporcionando sincronización a nivel de bits. Le sigue el SFD para proporcionar sincronización a nivel de bytes 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 porción SFD de la trama es 10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011; [3] : secciones 4.2.5 y 3.2.2 Los bits se transmiten en orden, de izquierda a derecha. [3] : 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. [3] : sección 4.2.5 El SFD es seguido inmediatamente por la dirección MAC de destino , que es el primer campo en una trama Ethernet. SFD es la secuencia binaria 10101011 (0xD5, decimal 213 en el primer orden de bits del LSB de Ethernet). [3] : secciones 3.2.2, 3.3 y 4.2.6

Se requiere un circuito transceptor de capa física (PHY para abreviar) para conectar el MAC de 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 del medio ( 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 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 de preámbulo seguida por el SFD sería 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xD5 (como bytes).

Marco: capa de enlace de datos

Encabezamiento

El encabezado presenta direcciones MAC de origen y destino (cada una de seis octetos de longitud), el campo EtherType y, opcionalmente, una etiqueta IEEE 802.1Q o una etiqueta IEEE 802.1ad .

El campo EtherType tiene dos octetos de longitud y se puede utilizar para dos propósitos diferentes. Los valores de 1500 e inferiores significan que se usa para indicar el tamaño de la carga útil en octetos, mientras que los valores de 1536 y superiores indican que se usa como un 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 octetos que indica la pertenencia a la LAN virtual (VLAN) y la prioridad IEEE 802.1p . Los primeros dos octetos de la etiqueta se denominan identificador de ID de rotocolo T ag P (TPID) y funcionan 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 mínima es de 42 octetos cuando está presente una etiqueta 802.1Q y de 46 octetos cuando está ausente. [d] Cuando la carga útil real es menor, los bytes de relleno se agregan en consecuencia. [e] La carga útil máxima es de 1500 octetos. Los bastidores jumbo no estándar permiten un tamaño máximo de carga útil más grande.

Secuencia de verificación de fotogramas

La secuencia de verificación de tramas (FCS) es una verificación de redundancia cíclica (CRC) de cuatro octetos que permite la detección de datos corruptos dentro de toda la trama recibidos en el lado del receptor. Según el estándar, el valor de FCS se calcula en función de los campos de la trama MAC protegida: 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 utilizando el algoritmo CRC32 BZIP2 de desplazamiento a la izquierda (poli = 0x4C11DB7, CRC inicial = 0xFFFFFFFF, CRC se complementa con posterioridad, valor de verificación = 0x38FB2284). El estándar 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). [3] : sección 3.2.9 Una alternativa es calcular un CRC usando el CRC32 de desplazamiento a la derecha (poli = 0xEDB88320, CRC inicial = 0xFFFFFFFF, CRC se complementa con la publicación, verifique el valor = 0x2144DF1C), lo que dará como resultado un CRC que es un inversión de bits de la 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 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 distinto de cero. (El resultado es distinto de cero porque el CRC se complementa posteriormente durante la generación de CRC). Dado que los datos se reciben primero con el bit menos significativo, y para evitar tener que almacenar octetos de datos en la memoria intermedia, el receptor normalmente usa el CRC32 de desplazamiento a la derecha. Esto hace que el valor de "verificación" (a veces llamado "verificación mágica") sea 0x2144DF1C. [5]

Sin embargo, la implementación de hardware de un CRC con desplazamiento lógico a la derecha puede utilizar 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 el complemento 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 del fotograma: capa física

El final de una trama generalmente se indica 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 pérdida de la portadora. Las capas físicas posteriores utilizan un símbolo o secuencia de fin de datos o de fin de flujo explícito para evitar ambigüedades, especialmente cuando la portadora se envía continuamente entre tramas; un ejemplo es Gigabit Ethernet con su esquema de codificación 8b / 10b que usa símbolos especiales que se transmiten antes y después de que se transmite una trama. [6] [7]

Espacio entre paquetes: capa física

La brecha entre paquetes (IPG) es el tiempo de inactividad entre paquetes. Después de que se ha enviado un paquete, se requiere que los transmisores transmitan un mínimo de 96 bits (12 octetos) de estado de línea inactiva antes de transmitir el siguiente paquete.

Hay varios tipos de tramas Ethernet:

  • La trama Ethernet II, o la versión 2 de Ethernet, [f] o la trama DIX es el tipo más común en uso hoy en día, ya que a menudo se usa directamente por el Protocolo de Internet.
  • Marco de variación no estándar IEEE 802.3 sin procesar de Novell
  • Marco de control de enlace lógico (LLC) IEEE 802.2
  • Marco del Protocolo de acceso a subredes (SNAP) IEEE 802.2

Los diferentes tipos de tramas tienen diferentes formatos y valores MTU , pero pueden coexistir en el mismo medio físico. La diferenciación entre los tipos de marcos 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 ). Esta encapsulación se define en la especificación IEEE 802.3ac y aumenta la trama máxima en 4 octetos.

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 octetos de la etiqueta son el valor del Identificador de protocolo de etiqueta (TPID) de 0x8100. Este se encuentra en el mismo lugar que el campo EtherType / Length en tramas sin etiquetar, por lo que un valor de EtherType de 0x8100 significa que la trama está etiquetada y el verdadero EtherType / Length se encuentra después de la etiqueta Q. El TPID va seguido de dos octetos que contienen la información de control de etiquetas (TCI) (la prioridad IEEE 802.1p ( calidad de servicio ) y la identificación de VLAN). A la etiqueta Q le sigue el resto del cuadro, utilizando uno de los tipos descritos anteriormente.

Ethernet II

El entramado Ethernet II (también conocido como DIX Ethernet , que lleva el nombre de DEC , Intel y Xerox , los principales participantes en su diseño [8] ), define el campo EtherType de dos octetos en un marco Ethernet , precedido por direcciones MAC de origen y destino, que identifica un protocolo de capa superior encapsulado por los datos de la trama. 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).

El formato de trama Ethernet más común, tipo II

A medida que 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. [g] Dado que el destinatario aún necesita saber cómo interpretar la trama, 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 las versiones posteriores del estándar 802.3 aprobaron formalmente ambos tipos de marcos. El entramado de Ethernet II es el más común en las redes de área local Ethernet, debido a su simplicidad y menor sobrecarga.

Para permitir que algunas tramas que usen la trama Ethernet v2 y algunas que usen la versión original de la trama 802.3 se usen en el mismo segmento de Ethernet, los valores de EtherType deben ser mayores o iguales a 1536 (0x0600). Ese valor se eligió porque la longitud máxima del campo de carga útil de una trama Ethernet 802.3 es de 1500 octetos (0x05DC). Por lo tanto, si el valor del campo es mayor o igual a 1536, la trama debe ser una trama Ethernet v2, siendo ese campo un campo de tipo. [9] 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. [10] Esta convención permite que el software determine si una trama es una trama Ethernet II o una trama IEEE 802.3, permitiendo la coexistencia de ambos estándares en el mismo medio físico.

Novell sin procesar IEEE 802.3

El formato de trama 802.3 "sin procesar" 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 sobre Ethernet. No utilizaron 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 primeros dos octetos (mientras que en IEEE 802.2 LLC ese patrón es teóricamente posible pero extremadamente improbable), en la práctica esto generalmente coexiste en el cable con otras implementaciones de Ethernet, con la notable excepción de algunas formas tempranas de DECnet que se confundieron con esto.

Novell NetWare usó este tipo de trama por defecto hasta mediados de los noventa, y dado que NetWare estaba entonces muy extendido, mientras que IP no lo estaba, en algún momento la mayor parte del tráfico Ethernet del mundo se ejecutaba sobre 802.3 "sin procesar" con IPX. Desde NetWare 4.10, NetWare utiliza de forma predeterminada IEEE 802.2 con LLC (NetWare Frame Type Ethernet_802.2) cuando se utiliza IPX. [11]

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.

La encapsulación IEEE 802.2 LLC no se usa ampliamente en redes comunes actualmente, con la excepción de 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 Ethernet y redes Token Ring o FDDI .

Existe un estándar de Internet para encapsular el tráfico IPv4 en tramas SAP / SNAP IEEE 802.2 LLC. [12] Casi nunca se implementa en Ethernet, aunque se usa en FDDI, Token Ring, IEEE 802.11 (con la excepción de la banda de 5.9 GHz , donde usa EtherType) [13] y otras LANs IEEE 802 . IPv6 también se puede transmitir a través de Ethernet usando IEEE 802.2 LLC SAP / SNAP, pero, nuevamente, eso casi nunca se usa.

IEEE 802.2 SNAP

Al examinar el encabezado de 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 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 privados.

En IEEE 802.3x-1997, el estándar IEEE Ethernet se cambió para permitir explícitamente el uso del campo de 16 bits después de las direcciones MAC para usarse como un campo de longitud o un campo de tipo.

El conjunto de protocolos AppleTalk v2 en Ethernet (" EtherTalk ") utiliza encapsulación IEEE 802.2 LLC + SNAP.

Podemos calcular la sobrecarga del protocolo para Ethernet como un porcentaje (tamaño del paquete que incluye IPG)

Podemos calcular la eficiencia del protocolo para Ethernet.

La máxima eficiencia se logra con el tamaño de carga útil más grande permitido y es:

para tramas sin etiquetar, ya que el tamaño del paquete es una carga útil máxima de 1500 octetos + preámbulo de 8 octetos + encabezado de 14 octetos + cola de 4 octetos + espacio mínimo entre paquetes correspondiente a 12 octetos = 1538 octetos. La máxima eficiencia es:

cuando se utiliza el etiquetado VLAN 802.1Q.

El rendimiento se puede calcular a partir de la eficiencia

,

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 / so 10 Gbit / s. En consecuencia, el rendimiento máximo para Ethernet 100BASE-TX es de 97,53 Mbit / s sin 802.1Q y de 97,28 Mbit / s con 802.1Q.

La utilización de canales es un concepto que a menudo se confunde con la eficiencia del protocolo. Solo considera el uso del canal sin tener en cuenta la naturaleza de los datos transmitidos, ya sea la carga útil o la 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 :

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 datos y reconocimientos.

Una trama runt es una trama Ethernet que es menor que la longitud mínima de 64 octetos de IEEE 802.3. Las tramas runt son causadas más comúnmente por colisiones ; otras posibles causas son una tarjeta de red que no funciona bien , un búfer insuficiente , una falta de coincidencia de dúplex o problemas de software. [14]

  1. ^ La secuencia de verificación de tramas (FCS) utiliza un orden de bits diferente. [2]
  2. ^ Los patrones de bits en el preámbulo y el delimitador de inicio de trama se escriben como cadenas de bits, con el primer bit transmitido a la izquierda ( no como valores de octetos, que en Ethernet se transmiten primero los bits menos significativos). Esta notación coincide con la utilizada en el estándar IEEE 802.3.
  3. ^ El software de detección de paquetes no muestra el preámbulo y el delimitador de trama inicialporque el controlador de interfaz de red (NIC)elimina estos bits en la capa 1 de OSIantes de pasarlos a la capa 2 de OSI , que es donde los detectores de paquetes recopilan sus datos. Hay rastreadores de capa 2 que pueden capturar y mostrar el preámbulo y el delimitador de cuadro de inicio, pero son costosos y se utilizan principalmente para detectar problemas relacionados con la conectividad física.
  4. ^ El tamaño mínimo de la carga útil viene determinado por el tiempo de ranura de 512 bits utilizado para la detección de colisiones en la arquitectura LAN Ethernet.
  5. ^ Los mínimos de 42 y 46 octetos son válidos cuando está presente 802.1Q. [4]
  6. ^ Se utilizó una trama de Ethernet versión 1 para los primeros prototipos de Ethernet y presentaba direcciones MAC de 8 bits y nunca se implementó comercialmente.
  7. ^ Las tramas Ethernet originales definen su longitud con la trama que las rodea, en lugar de con un recuento de longitud explícito.

  1. ^ a b 802.3-2018 - Estándar IEEE para Ethernet . 3.1.1 Formato de paquete . IEEE . 2018. p. 118. doi : 10.1109 / IEEESTD.2018.8457469 . ISBN 978-1-5044-5090-4.
  2. ^ "802.3-2012 - Estándar IEEE para Ethernet" (PDF) . ieee.org . Asociación de estándares IEEE. 28 de diciembre de 2012. Sección 3.3 y anexo 31A . Consultado el 9 de febrero de 2014 . Los códigos de operación se transmiten primero en octetos de orden superior. Dentro de cada octeto, los bits se transmiten primero con el bit menos significativo. [...] Cada octeto de la trama MAC, con la excepción de FCS, se transmite primero con el bit menos significativo.
  3. ^ a b c d e f "802.3-2018 - Estándar IEEE para Ethernet" (PDF) . ieee.org . Asociación de estándares IEEE. 31 de agosto de 2018 . Consultado el 31 de agosto de 2018 .
  4. ^ IEEE 802.1Q-2011, anexo G
  5. ^ https://www.autosar.org/fileadmin/user_upload/standards/classic/4-1/AUTOSAR_SWS_CRCLibrary.pdf#page=24
  6. ^ Charles E. Spurgeon (febrero de 2000). Ethernet: la guía definitiva . O'Reilly. págs.  41 , 47. ISBN 9780596552824. Consultado el 30 de junio de 2014 .
  7. ^ "40.1.3.1 Subcapa de codificación física (PCS)" (PDF) . Estándar IEEE para Ethernet, 802.3-2012 - sección tres . 28 de diciembre de 2012. p. 183 . Consultado el 6 de julio de 2014 .
  8. ^ Drew Heywood; Zubair Ahmad (2001). Servicios de red de Windows 2000 de Drew Heywood . Sams. pag. 53. ISBN 978-0-672-31741-5.
  9. ^ Comité de Estándares LAN MAN de la IEEE Computer Society (20 de marzo de 1997). IEEE Std 802.3x-1997 y IEEE Std 802.3y-1997 . Instituto de Ingenieros Eléctricos y Electrónicos, Inc. págs. 28–31.
  10. ^ Norma IEEE 802.3-2005, 3.2.6
  11. ^ Don Provan (17 de septiembre de 1993). "Encuadre de Ethernet" . Grupo de noticias :  comp.sys.novell . Usenet:  [email protected] .( Versión en formato HTML archivada el 18 de abril de 2015 en Wayback Machine ): una serie clásica de publicaciones de Usenet de Don Provan de Novell que se han abierto camino en numerosas preguntas frecuentes y son ampliamente consideradas la respuesta definitiva al uso del tipo de trama de Novell.
  12. ^ "RFC1042: Un estándar para la transmisión de datagramas IP sobre redes IEEE 802" . Grupo de trabajo en red del IETF. Febrero de 1988.
  13. ^ Sociedad de Informática, IEEE (2016). IEEE Std 802.11-2016: Parte 11: Control de acceso al medio de LAN inalámbrica Especificaciones IEEE (MAC) y capa física (PHY) . Nueva York, NY: IEEE. pag. 249.
  14. ^ "Solución de problemas de Ethernet" . Cisco Systems . Consultado el 13 de agosto de 2016 .

  • "> Reproducir medios

    Video que explica cómo construir un marco Ethernet

  • "> Reproducir medios

    Explicación de la longitud mínima de trama en Ethernet