Especificaciones del Nivel 2 en Ethernet
Algunas de las especificaciones sobre funciones del nivel 2 del modelo de referencia OSI desarrolladas para las primeras versiones de Ethernet se han mantenido a lo largo del tiempo y siguen siendo válidas en la actualidad. Éstas son el direccionamiento físico, el formato de la trama y el control de errores. Sin embargo, la función de control del enlace utilizado en las redes Ethernet tradicionales hoy en día está prácticamente en desuso, aunque se ha mantenido en las especificaciones por motivos de compatibilidad.
Direccionamiento
En los próximos apartados se repasará la forma en que se implementan las principales funciones del nivel 2 del modelo OSI en Ethernet. Empecemos con el direccionamiento físico, que consiste en proporcionar un mecanismo para identificar cada equipo conectado a la red.
La dirección física en las redes Ethernet es un número binario formado por 48 bits (6 bytes) y almacenado en la propia tarjeta de red. La dirección física también se conoce como dirección MAC.
Esta dirección debe ser única para toda la red, y para conseguir esto cada tarjeta de interfaz de red se configura de fábrica con una dirección física diferente. De esta forma se asegura de que no va a haber dos tarjetas conectadas en la misma red con la misma dirección física. Los 24 bits de mayor peso los asigna el IEEE e identifica a la empresa fabricante de la tarjeta de red. Este número de 24 bits se conoce como OUI (organizationally unique identifier). Los 24 bits de menor peso los asigna el fabricante a cada tarjeta durante el proceso de fabricación.
Imporante! La asignación de los 24 primeros bits a fabricantes se puede encontrar en la siguiente página: http://standards.IEEE.org/regauth/oui/oui.txt.
Un ejemplo de dirección física podría ser el siguiente:
La notación binaria utilizada en el ejemplo anterior es incómoda de manejar, por lo que normalmente se utiliza la notación hexadecimal. En dicha notación se utilizan guiones (-) o dos puntos (:) como separadores de cada dos dígitos hexadecimales. el ejemplo anterior se representaría en formato hexadecimal de la siguiente forma:
00-90-f5-01-67-4f o bien utilizando el carácter “dos puntos” como separador: 00:90:f5:01:67:4f
Se ha definido una dirección especial llamada dirección de Broadcast o de difusión utilizada para enviar una trama a todos los dispositivos de una red. Es la dirección FF:FF:FF:FF:FF:FF, es decir, todos los bits a valor 1.
Todos los equipos conectados a una red Ethernet deben tener asignada una dirección MAC. Incluso puede darse el caso de equipos que tienen más de una tarjeta de red. en este caso, cada tarjeta de red tendrá su dirección MAC. Para equipos que utilizan como sistema operativo Windows 7 (o XP) se puede consultar la dirección MAC con el comando ipconfig/all ejecutado mediante la herramienta símbolo del sistema.
Imporante! En sistemas Linux se puede consultar la dirección MAC mediante el comando ifconfig ejecutado desde un terminal de comandos.
La dirección física asignada por el fabricante a una tarjeta de red en el proceso de fabricación no puede ser cambiada. Sin embargo, en la actualidad existen mecanismos que permiten llevar a cabo un cambio ficticio de la dirección física por software, normalmente a través de los sistemas operativos más actuales como Windows XP, Windows 7 o linux. En este caso, la dirección física de la tarjeta no se altera pero los servicios de red del sistema operativo proporcionan una dirección física ficticia, es decir, enmascaran la verdadera dirección.
Formato de Trama
Una de las funciones cubiertas en el nivel de enlace es el tramado de la Información que se quiere transmitir. El tramado consiste en dividir dicha Información en fragmentos denominados tramas y añadir a cada fragmento Información de control en lo que se conoce como cabecera. Veamos primero cómo es el formato de la trama especificada en el estándar IEEE 802.3.
La trama IEEE 802.3 se divide en campos o bloques de Información. La Información real que se quiere transmitir y que proviene del nivel superior se incluye en el campo Datos, el resto es Información de control. a continuación se describe la función de cada campo:
- Preámbulo: está formado por 7 bytes (56 bits) con valores 0 y 1 alternados. Es decir, cada byte contiene los bits 10101010. Este campo se utiliza para realizar la sincronización entre el emisor y el receptor.
- SFD (Start Frame Delimiter) o delimitador del comienzo de trama: Es 1 byte con el valor 10101011. Este campo indica el inicio de la trama.
- Dirección de destino: campo con un tamaño de 6 bytes que contiene la dirección física (dirección MAC) del dispositivo de destino.
- Dirección fuente u origen: Campo con un tamaño de 6 bytes que contiene la dirección física (dirección MAC) del dispositivo que envía la trama.
- Longitud: este campo está formado por 2 bytes que indican la longitud de los datos. el valor mínimo es 0 y el máximo es 1.500.
- Datos: Este campo tiene un tamaño variable entre 46 y 1.500 bytes dependiendo lógicamente de la Información recibida del nivel superior. El tamaño mínimo de este campo debe ser de 46 bytes, por lo tanto, si el número de bytes para enviar es inferior, se envían bytes de relleno hasta completar este tamaño mínimo. Esto se debe a que el tamaño mínimo total de la trama debe ser de 64 bytes por cuestiones relacionadas con la temporización en el uso del medio de transmisión.
- FCS (Frame check sequence) o secuencia de verificación de trama: Este campo contiene un valor de 4 bytes (32 bits) conocido como CRC o código de redundancia cíclica y que es utilizado para la detección de errores en la transmisión. El campo FCS no se considera parte de la cabecera, ya que se añade al final de la trama, sin embargo, sí forma parte de la Información de control.
Veamos ahora cuál es el formato de la trama Ethernet II:
Se puede observar que hay pocas diferencias entre las tramas IEEE 802.3 y Ethernet ii. Por una parte, el campo SFD de IEEE 802.3 está incluido en el preámbulo en Ethernet II, pero su contenido es el mismo. Por otra parte, el campo Longitud en IEEE 802.3 se ha convertido en el campo Tipo en Ethernet II. El campo Tipo es un código de 2 bytes que indica el Protocolo de nivel superior (nivel de red).
Importante! Los protocolos de nivel de red más utilizados en redes LAN basadas en TCP/IP son IP y ARP. Además, para IP existen dos versiones, la actual IPv4 y la futura IPv6. Los códigos en valor hexadecimal utilizados en el campo Tipo para estos protocolos son:
- IPv4 0800
- IPv6 86DD
- ARP 0806
Además, hay que tener en cuenta que en la trama IEEE 802.3 el campo Datos contiene la Información del nivel superior, que en este caso es el subnivel LLC. Este subnivel, como se ha comentado anteriormente, añade una cabecera de 3 bytes. En el caso del formato Ethernet ii, el campo Datos contiene Información que proviene directamente del nivel de red, ya que en este caso no se utiliza el subnivel LLC.
Estos dos formatos de trama han coexistido en las redes Ethernet hasta que en 1997 el IEEE incluyó el formato Ethernet ii en el estándar IEEE 802.3, por lo que desde entonces ambos formatos de trama forman parte del estándar, pasándose a denominar el campo que marcaba la diferencia como Longitud/tipo. En cualquier caso, la mayor parte de los dispositivos de red en la actualidad utilizan el formato Ethernet II.
La forma en la que las tarjetas de red manejan los dos tipos de tramas es simplemente analizando los dos siguiente bytes de la dirección origen. Si es un número igual o inferior a 1.500 es una trama IEEE 802.3 y este campo indica la longitud de la trama, y si es un número superior a 1.500 (05Dc en hexadecimal) es una trama Ethernet ii y este campo indica el tipo de Protocolo de nivel superior.
Los campos preámbulo y SFD son campos utilizados para sincronización y realmente no forman parte de la trama. De hecho, las últimas versiones no necesitan estos mecanismos de sincronización y estos campos no son necesarios, aunque se mantienen en el estándar por motivos de compatibilidad.
Control de Acceso al Medio: CSMA/CD
Las primeras versiones de Ethernet utilizaron enlaces multipunto en los que varios dispositivos estaban conectados en el mismo enlace (por ejemplo, en la implementación 10Base-T), por ello fue necesario establecer un mecanismo de arbitraje para resolver el conflicto ocasionado cuando dos equipos quieren acceder al mismo tiempo al medio de transmisión.
Las técnicas utilizadas para esta función se denominan técnicas de contienda y se han desarrollado varias a lo largo de la historia. Todas ellas se basan en el tratamiento de un estado que se puede producir en el medio de transmisión llamado colisión. Una colisión se produce cuando dos dispositivos transmiten datos simultáneamente. Las señales enviadas por cada dispositivo se mezclan y se pierde la Información que contienen. La técnica de contienda utilizada en Ethernet es CSMA/CD (Carrier Sense Multiple Access with Collision Detection, acceso múltiple por detección de portadora y con detección de colisiones) y sus principios de funcionamiento son los siguientes:
- Cuando un equipo quiere transmitir una trama comprueba si el medio de transmisión está libre, es decir, no hay otro dispositivo enviando Información. Por lo tanto, si el medio está libre, dicho equipo comienza la transmisión de su trama.
- Si el medio está ocupado, el equipo espera hasta que quede libre y transmite su trama.
- Mientras se transmite la trama el equipo comprueba continuamente si se produce alguna colisión.
- Si se detecta una colisión se deja de transmitir inmediatamente, se espera un tiempo aleatorio y se intenta la transmisión de nuevo. Solamente se comprueba si hay colisión mientras se transmite la trama, por lo que es importante que los sistemas que utilicen CSMA/CD estén correctamente diseñados para que no se produzcan colisiones después de que el transmisor deje de transmitir. En el caso de Ethernet, esta situación puede ocurrir para la transmisión de tramas muy cortas, por esta razón las tramas Ethernet necesitan un número mínimo de bytes, concretamente 64 bytes, ya que con tramas más pequeñas no se garantizarían la detección correcta de colisiones.
El uso de medios de transmisión compartidos donde es necesario utilizar CSMA/CD convierte a Ethernet en una tecnología half-dúplex, ya que solo puede haber una trama simultáneamente en el medio de transmisión.
Control de Errores de Ethernet
En las redes Ethernet pueden aparecer diferentes tipos de errores, algunos de ellos relacionados con las colisiones (colisiones atrasadas) y otros relacionados con tamaños incorrectos de trama. Estos errores aparecen de forma esporádica.
Como se ha visto anteriormente, en la trama Ethernet existe un campo llamado FCS utilizado para el control de errores. Los errores detectados con este campo se refieren a errores de transmisión en los datos y normalmente son producidos por tarjetas de red defectuosas, controladores defectuosos o cableados en malas condiciones.
La técnica utilizada para la detección de errores FCS se basa en obtener a partir de un bloque de datos una secuencia de bits, llamada CRC (cyclic Redundancy code, o código de redundancia cíclica). En este caso, el bloque de datos es la propia trama Ethernet, incluida la Información de control. Esta secuencia de bits es calculada por el emisor siguiendo un algoritmo determinado y transmitida en el campo FCS de la trama Ethernet. El receptor, cuando recibe los datos, realiza el mismo cálculo. Si el CRC calculado por el receptor coincide con el recibido es que los datos no han sido alterados en la transmisión, es decir, no ha habido errores y por tanto la trama se acepta. Cuando el CRC calculado no coincide con el recibido es que ha habido errores en la transmisión, con lo cual la trama se descarta.