Revisión de TRAMA de 18 May, 2012 - 18:00

Versión para imprimirVersión para imprimir

 Formato de la trama

Por ser una red broadcast los mensajes enviados por una estación se difunden por toda la red, llegando a todas las estaciones de la misma. Esto permite la emisión de mensajes destinados a todas las estaciones (Broadcast) o a un grupo de ellas (Multicast).

El paquete de un mensaje Ethernet consta de los siguientes campos:

*******
Hueco entre tramas: Es un período de tiempo en que no se transmite nada, de longitud equivalente a 12 bytes (por ejemplo 96 ns a 10 Mb/s) que sirve para separar las tramas. Este hueco entre tramas es el único mecanismo fiable para detectar cuando termina una trama, ya que el campo longitud puede no existir y aunque exista no se utilizará en tiempo de captura para averiguar cuando termina la trama. El hueco también sirve para dar un respiro al receptor, que puede necesitar un pequeño respiro al final de una trama para realizar diversas tareas de mantenimiento (transvase de buffers de la interfaz de red al host, interrupciones a la CPU, etc.) antes de volver a la escucha. Para asegurar que se respete el hueco el estándar establece que siempre que una estación vaya a enviar una trama deberá esperar el tiempo equivalente a 12 bytes antes de empezar a transmitir el preámbulo.

Preámbulo y delimitador (7 y 1 bytes): El preámbulo está formado por la secuencia 10101010 repetida siete veces, y el delimitador de inicio por la secuencia 10101011. Esto al ser transmitido con codificación Manchester genera una onda cuadrada de 10 MHz durante 5,6 m s, lo cual permite a los demás ordenadores sincronizar sus relojes con el emisor. El delimitador de inicio de trama marca el final del preámbulo y el comienzo de ésta.

Dirección de destino (6 bytes).

Dirección de origen (6 bytes): Las direcciones Ethernet tienen 48 bits, de manera que cada estación tiene una dirección única grabada en el hardware con lo que no puede haber coincidencias de dirección entre dos estaciones distintas. Los rangos de direcciones Ethernet son otorgados como parte de la licencia de Xerox a los fabricantes de tarjetas de interfaz Ethernet. Cada fabricante se puede identificar mediante los 3 primeros octetos de la dirección Ethernet, y los otros 3 numeran de forma única cada interfaz, de tal manera que nunca puedan existir dos tarjetas de interfaz Ethernet con la misma dirección.

Tipo (2 bytes): En este campo se indica cual es el protocolo del nivel inmediatamente superior (el de RED) encapsulado en el campo de datos. Este valor ha de ser superior al valor 05EE en hexadecimal, si es inferior, se trata de un campo de longitud utilizado en tramas de tipo IEEE 802.3. La longitud mínima de una trama Ethernet fija el diámetro de la red, ya que para el correcto funcionamiento del protocolo CSMA/CD es preciso que el tiempo de ida y vuelta no sea nunca superior a lo que tarda en emitirse una trama del tamaño mínimo. De haber mantenido la trama mínima de 64 bytes en Gigabit Ethernet el diámetro máximo habría sido de unos 45 m, inaceptables en la mayoría de situaciones. Para evitar esto la trama Gigabit Ethernet incorpora un segundo relleno denominado “extensión de portadora” que se añade al final de la trama para garantizar que la longitud mínima nunca sea inferior a 512 bytes (4096 bits). De esta forma el tiempo de ida y vuelta máximo es de 4,096 m s y el diámetro puede ser de 330 m. Este segundo relleno no es formalmente parte de la trama Ethernet, por lo que solo existirá mientras la trama viaje por Gigabit Ethernet. En el caso de que una trama con extensión de portadora sea transmitida a una red de 100 o 10 Mb/s la extensión de portadora se eliminará, e inversamente, si una trama menor de 512 bytes llega a una red Gigabit Ethernet desde Fast Ethernet o Ethernet el conmutador correspondiente añadirá la extensión de portadora necesaria para que la longitud sea de 512 bytes. El uso de extensión de portadora supone una pérdida de eficiencia en el caso de tramas pequeñas, y un mayor riesgo de colisiones como veremos luego. Para reducir en lo posible estos problemas se prevé la posibilidad de que una estación que quiera enviar varias tramas pequeñas seguidas lo haga como una ráfaga sin necesidad de 'envolver' cada una en una extensión de portadora independiente (sin embargo si aún así la ráfaga es menor de 512 bytes seguirá generándose una extensión de portadora).

La longitud máxima de una trama Ethernet es de 1518 bytes (1500 bytes de datos más cabeceras). Los diseñadores originales de Ethernet (Xerox) consideraron este campo de longitud innecesario porque la mayoría de los protocolos a nivel de red (y ciertamente todos aquellos en los que estaban interesados) incluyen en la información de cabecera un campo indicando la longitud, y cuando esto no es así la longitud de la trama se puede averiguar simplemente contando el número de bytes que ésta contiene (siempre y cuando no haya campo de relleno, es decir que la trama tenga al menos 64 bytes). Por el contrario si consideraron necesario un campo tipo que identificaba el protocolo de nivel de red encapsulado. Sin embargo el comité 802.3 creyó conveniente incluir el campo longitud en vez del campo tipo para no condicionar la información que debiera aparecer en el nivel de red. Esta pequeña modificación tenía el efecto colateral de hacer incompatible el estándar IEEE 802.3 con Ethernet DIX, cosa que según algunos era el verdadero objetivo de muchos de los miembros del comité que votaron a favor de esta modificación. Xerox resolvió en parte el problema de incompatibilidad producido por la decisión del IEEE asignando a todos los protocolos códigos superiores a 1536, valor máximo del campo longitud; por ejemplo el código correspondiente a IP es 2048. Así analizando el valor de este campo podemos saber si la trama tiene formato DIX u 802.3. Los dos formatos son incompatibles entre sí, pero al menos pueden coexistir en una misma red. En el caso de una trama 802.3 la información sobre el protocolo a nivel de red aparece en la parte de datos de la trama, en una cabecera LLC (Logical Link Control) cuyo formato veremos mas tarde. La estructura de esta cabecera, común a todas las redes locales 802, se especifica en el estándar IEEE 802.2. El trabajo conjunto del IEEE y de la ISO en el diseño de la cabecera LLC produjo un diseño absurdo e innecesariamente complejo que hace que en la mayoría de los protocolos sea necesario analizar los cuatro campos y los ocho bytes de la cabecera LLC para averiguar lo que Xerox obtenía usando solo dos bytes en la cabecera DIX. Esto complica el proceso de los paquetes y añade un overhead innecesario, sobre todo en el caso de tramas pequeñas. Por este motivo incluso hoy en día el formato DIX es el mas utilizado, empleándose por ejemplo en TCP/IP, DECNET fase 4, LAT (Local Area Transport, de DEC) y algunas implementaciones de IPX (Netware de Novell). El formato 802.3/LLC es utilizado normalmente en Appletalk fase 2, NetBIOS y algunas implementaciones de IPX. En 1997 el grupo de trabajo 802.3x estandarizó un mecanismo de control de flujo para Ethernet Full Dúplex. Entonces se definió un protocolo de red específico para el control de flujo (es decir un nuevo valor del campo tipo para este protocolo), y se apreciaron considerables ventajas en disponer de la información sobre el tipo de protocolo en la cabecera MAC, como hacía el formato DIX, ya que esto permitía tratar las tramas a bajo nivel, es decir por hardware; el control de flujo es una tarea de máxima prioridad y se debe realizar con la máxima eficiencia posible. El comité podía haber estandarizado el formato DIX únicamente para las tramas de control de flujo, y mantener el 802.3/LLC para los demás protocolos, pero finalmente decidió aceptar todos los protocolos en el formato DIX considerando válidos los dos significados, tipo y longitud, para este campo de dos bytes. La elección de cual significado es aplicable en cada caso se haría en función del valor de este campo. Dicho de otro modo el comité estandarizó lo que era ya una práctica generalizada en todas las implementaciones existentes. De alguna manera esto representa una reconciliación quince años mas tarde con DIX (y con el mundo real). En la RFC 1700 podemos consultar la relación de números-protocolo para este campo.

Datos (46 a 1500 bytes): Contiene los datos transmitidos por la trama. Estos datos corresponden al nivel siguiente, que será la cabecera LLC encapsulando a los datos del nivel de red.

CRC (4 bytes): Código de redundancia cíclica para detección de errores en la trama.

La especificación IEEE 802.3 define un formato ligeramente diferente donde las direcciones pueden ser de 16 ó 48 bits y un campo de longitud del mensaje de 16 bits reemplaza al campo del tipo de mensaje. En una red se ha de usar el campo de dirección de 16 o de 48 bits pero no una mezcla de tramas con campo de dirección de diferente tamaño en el mismo cable. A pesar de estas diferencias, en una misma red local pueden transmitirse simultáneamente tramas de tipo Ethernet y de tipo IEEE 802.3 con campo de dirección de 48 bits sin problemas, ya que si en el campo Tipo de 2 bytes el valor es inferior a 0x05EE la trama se interpreta como IEEE 802.3 y si es superior como Ethernet.