10 Ethernet
10 Ethernet
10 Ethernet
10 ETHERNET
El memo de Metcalfe de 1973 describiendo la red Ethernet se basa en una idea aplicada
hacia finales de 1960, principios de los ’70, llamada red Aloha. Esta red Aloha nació en la
Universidad de Hawaii cuando Norman Abramson y sus colegas desarrollaron una red de radio
para comunicarse entre varias de las islas de Hawaii. Este fue uno de los primeros
experimentos para desarrollar mecanismos para compartir un canal de comunicación común
entre varios usuarios, en este caso un canal de radio.
La idea de Aloha es bastante sencilla y ya lo hemos estudiado: hay varios usuarios que
comparten un canal de comunicación en común para comunicarse entre ellos. Cuando una
estación desea enviar un mensaje a otra, simplemente lo envía “sin preguntar nada a nadie” y
espera un mensaje de confirmación para saber que el mensaje llegó correctamente a destino.
Como cada estación simplemente transmite cuando tiene algo para transmitir, puede ocurrir
que dos o más estaciones intenten transmitir simultáneamente por lo que en tal caso los
mensajes colisionarán y no llegarán a los destinos establecidos. En este caso no se recibirá
ningún mensaje de confirmación. Por lo tanto, si luego de cierto tiempo la estación transmisora
no recibe ningún mensaje de confirmación de la estación destinataria se asume que se produjo
una colisión y que el mensaje transmitido no fue recibido por el destinatario. Luego de
detectada la colisión, las estaciones involucradas esperan un tiempo aleatorio antes de volver
a transmitir.
Metcalfe creyó que podía mejorar el sistema desarrollado por Abramson. Una de las
cosas que hizo para lograrlo fue desarrollar un mecanismo para detectar la ocurrencia de una
colisión (collision detect). Otra cosa que agregó fue un mecanismo para “escuchar el canal”
antes de transmitir (carrier sense, o sensado de portadora) de modo que el acceso al canal sea
más organizado que el Aloha. Este sistema también soportaba acceso de múltiples estaciones
(multiple access). Poniendo todas estas ideas juntas resulta que Ethernet es un sistema de
Acceso Múltiple con Detección de Portadora y Detección de Colisión. Que en inglés resulta
Carrier Sense Multiple Access with Collision Detection (CSMA/CD).
10 Ethernet 1
A finales de 1972, Metcalf y sus amigos de Xerox en Palo Alto California pusieron en
marcha el primer sistema experimental Ethernet, allí mismo en Xerox. La tasa de transmisión
de datos era de 2,94 Mbps.
La red experimental de Bob Metcalfe se llamó inicialmente Alto Aloha Network. En 1973
Metcalfe le cambió el nombre por Ethernet para que no se pensara que el sistema sólo
funcionaba con las computadoras de Palo Alto y que tampoco era un sistema Aloha más. El
nombre lo tomó de Eter que era el concepto que habían utilizado los físicos Michelson y Morley
para describir el medio sobre el cual se propagaba la luz o las ondas electromagnéticas en
general. Una manera de describir la idea de transportar bits a todas las estaciones que están
conectadas a ese “medio”.
En junio de 1976 Metcalfe presentó Ethernet por primera vez en la Conferencia Nacional
de Computadoras de Estados Unidos. Ese mismo año, Bob Metcalfe y David Boggs publicaron
el paper titulado “Ethernet: Distributed Packet Switching for Local Computer Networks”
(Ethernet: Conmutación Distribuida de Paquetes para Redes de Computadoras Locales). A
finales de 1977 Robert Metcalfe, David Boggs, Charles Thacker y Butler Lampson recibieron la
patente número 4.063.220 de Estados Unidos correspondiente a Ethernet, para un “Sistema
de Comunicación de Datos Multipunto con Detección de Colisiones”. A mediados de 1978 se
emitió una patente para repetidores Ethernet. Hasta aquí Xerox era el dueño del sistema
Ethernet.
Xerox se dio cuenta de que el sistema Ethernet debía convertirse en una norma para la
industria en lugar de ser sólo un sistema para uso propio de Xerox. Para ello decidió formar
una alianza con Digital Equipment Corporation (DEC) e Intel Corporation, dando como
resultado el consorcio DIX, nombre formado por las iniciales de las tres compañías. El
consorcio DIX se encargó de desarrollar la norma Ethernet de 10 Mbps, de cable coaxial
grueso. Por ese entonces el sistema competidor era Wangnet.
La norma original Ethernet de 10 Mbps de DIX se publicó en 1980, con el título The
Ethernet, A Local Area Network: Data Link Layer and Phisical Layer Specifications (Ethernet,
una red de área local: especificaciones de capa de enlace de datos y de capa física). Es decir
que esta norma establece todo lo referente a la capa 1 (capa física) y capa 2 (enlace de
datos) del modelo OSI. La norma Ethernet de 10 Mbps da todas las especificaciones de capa
física (medio de comunicación, velocidad de transmisión, tipos de conectores, distancias
máximas, etc.) y de capa de enlace de datos (tamaño de los paquetes, encabezados, CRC,
acceso al medio, etc.) correspondientes a un sistema de interconexión de computadoras en
redes LAN.
Luego de que el estándar de DIX fuera publicado, la IEEE también quiso escribir su
propia norma con la idea de establecer un sistema abierto. Consecuentemente, el sistema
Ethernet de cable coaxial grueso fue normalizado dos veces: primero por DIX y luego
por la IEEE. La norma de la IEEE fue desarrollada bajo la dirección del Comité de Normas
para Redes Locales y Metropolitanas, que identifica sus normas con el número 802. El Comité
802 es el encargado de escribir las normas relacionadas a redes LAN.
El comité IEEE 802 tomó el sistema descripto originalmente por DIX y lo usó como base
para su norma. Ésta se publicó en 1985 bajo el título IEEE 802.3 Carrier Sense Multiple Access
with Collision Detection (CSMA/CD) Access Method And Phisical Layer Specification. El comité
802 de la IEEE evitó el uso de la palabra Ethernet en su norma para no crear intereses
comerciales. En su lugar quedó el nombre 802.3 CSMA/CD o simplemente 802.3. Sin embargo,
la mayoría de la gente usa el nombre Ethernet cuando se refiere a la norma 802.3.
IEEE 802.3 es la norma oficial de Ethernet. Cada tanto suele aparecer alguna “nueva
norma” relacionada a Ethernet escrita por algún consorcio económico dedicado al desarrollo de
tecnología de redes. Sin embargo, si dicha norma no está especificada dentro de la 802.3 no
se considera una norma oficial.
2 10 Ethernet
El estándar original 802.3 hace referencia al Ethernet de 10 Mbps de cable grueso, es
decir al que utiliza como medio de propagación el cable coaxial grueso. Posteriormente a dicha
norma, la IEEE fue redactando nuevas versiones de la 802.3 que corresponden a otros medios
de propagación como así también a otras velocidades de transmisión (tasa de bit). En la
Tabla I se resumen las distintas versiones del estándar 802.3 y sus descripciones.
Cuando la IEEE tomó como base el estándar original de DIX, le hizo algunos pocos
cambios. La principal razón por la diferencia entre ambas normas se debe a que ambos grupos
perseguían fines distintos. Las especificaciones de DIX fueron desarrolladas por las tres
compañías asociadas y fueron pensadas para describir pura y exclusivamente el sistema
Ethernet. Para ese entonces no existía un mercado abierto de LAN con diversos fabricantes.
El primer estándar IEEE 802.3 describía en sus capas de enlace de datos y física, un
sistema de interconexión de redes LAN basado en un cable coaxial grueso como medio de
comunicación. Desde ahí fue escribiendo nuevas normas para este sistema conforme se fue
mejorando o modificando el sistema original de cable coaxial grueso descripto originalmente
por Metcalfe y sus colegas. Cada una de estas versiones de la IEEE además de llevar un
número que hace referencia a la norma (802.3x en general) lleva un identificador, un nombre
digamos, compuesto de tres partes, que da cuenta de la velocidad de transmisión del sistema,
el tipo de señalización usada y el tipo de medio sobre el cual se transmite.
En los primeros sistemas, la parte del identificador que daba cuenta del medio físico se
basaba en la longitud del cable en metros. Posteriormente, la IEEE eliminó la convención
10 Ethernet 3
referente a la distancia o longitud del cable (la tercera parte del identificador) y la reemplazó
por el tipo de medio utilizado (por ejemplo par trenzado o fibra óptica). En orden cronológico
de aparición los identificadores son los siguientes:
10Base5
Este es el identificador correspondiente al sistema original Ethernet basado en cable
coaxial grueso. El 10 significa velocidad de transmisión de 10 megabits por segundo; Base se
refiere a baseband que significa que el medio de transmisión (en este caso coaxial grueso)
está dedicado a transportar un solo servicio: señales Ethernet1. Finalmente, el 5 hace
referencia a la máxima longitud de 500 metros que un segmento de cable de este sistema
puede tener. Para extender la red se conectan varios de estos segmentos unidos por
repetidores.
10Base2
Este sistema también se lo conoce como Ethernet de cable coaxial delgado. Opera a
10 Mbps en banda base (en el sentido expuesto anteriormente) y con longitudes máximas de
segmento de cable de 185 metros. En el identificador se decidió poner 2 al final por simplicidad
para no extender el nombre del mismo.
FOIRL
Significa Fiber Optic Inter-Repeater Link (Enlace de Fibra Óptica entre Repetidores). El
estándar original de DIX mencionaba un segmento punto a punto que podía usarse entre
repetidores aunque no se daba ninguna especificación al respecto. Más tarde el comité IEEE
desarrolló la norma FOIRL y la publicó en 1989. Originalmente fue diseñado para enlazar
segmentos Ethernet remotos mediante fibra óptica.
10Broad36
Este sistema fue diseñado para enviar señales de 10 Mbps sobre sistemas de cables de
banda ancha que soportan varios servicios simultáneamente (sería la contraparte de banda
base o baseband). El 36 hace referencia a los 3600 metros de distancia permitidos entre dos
estaciones. No tuvo gran desarrollo.
1Base5
Esta norma describe un sistema de 1 Mbps sobre cable de par trenzado. No ha sido
popular y fue rápidamente reemplazado por 10Base-T.
10Base-T
La “T” hace referencia a twisted (trenzado), del par de cable trenzado. Esta variante de
Ethernet opera a 10 Mbps en modo banda base, sobre dos pares trenzados categoría 3 o
mejor.
10Base-F
100Base-T
1
Baseband significa literalmente banda base y se refiere a una señal cuyo espectro de frecuencia se extiende desde
aproximadamente 0 hertz hasta unas decenas de megahertz. Sin embargo, en el caso de la nomenclatura IEEE de la
que estamos hablando no tiene absolutamente nada que ver con este significado.
4 10 Ethernet
100Base-X
Esta variante opera a 100 Mbps en banda base, tanto en par trenzado como en fibra
óptica usando codificación 4B/5B. Se lo subdivide en 100Base-TX y 100Base-FX.
100Base-TX
Esta es la variante Fast Ethernet que opera a 100 Mbps sobre dos pares trenzados de
alta calidad categoría 5. TX indica que es la versión de par trenzado de 100Base-X.
100Base-FX
Esta es la variante Fast Ethernet que opera a 100 Mbps en banda base sobre fibra
óptica multimodo.
100Base-T4
Esta variante de Fast Ethernet opera a 100 Mbps en banda base sobre cuatro pares
trenzados categoría 3 o mejor. No fue ampliamente desarrollada.
100Base-T2
Opera a 100 Mbps en banda base sobre dos pares trenzados categoría 3. Nunca fue
desarrollada por ningún fabricante y no hay ningún equipo basado en esta norma.
1000Base-X
Esta es la identificación IEEE para los sistemas Gigabit Ethernet basados en codificación
8B/10B. El sistema 1000Base-X incluye 1000Base-SX, 1000Base-LX y 1000Base-CX.
1000Base-SX
La “S” se refiere a “short”, de short wavelength, esto es, longitud de onda corta. La “X”
indica que pertenece al sistema con codificación 8B/10B mencionado antes. Lo de longitud de
onda corta tiene que ver con la longitud de onda utilizada para transmitir sobre fibra óptica.
1000Base-LX
Gigabit Ethernet sobre fibra óptica en larga longitud de onda (long wavelength).
1000Base-CX
Gigabit Ethernet basado en cable de cobre.
1000Base-T
Este es el identificador de la IEEE para Gigabit Ethernet sobre par trenzado de categoría
5 o mejor. No usa el esquema 8B/10B sino que usa un esquema diferente.
Rediseño de Ethernet
Por más que el diseño de una tecnología de red LAN sea muy bueno, no sirve de mucho
si uno solamente puede usar equipamiento provisto por un solo fabricante. Una LAN tiene que
ser capaz de trabajar con la más amplia variedad posible de equipamiento para poder tener la
mayor flexibilidad posible. Digamos que no se puede estar atado a un solo fabricante y tiene
que ser un sistema compatible con productos hechos por diferentes fabricantes. En los años 70
nadie pensaba en esta característica. Las computadoras eran caras y la tecnología de redes
sonaba como algo exótico.
Metcalfe entendió el potencial negocio que había detrás de todo esto y fue ahí que
convenció a la gente de Xerox para que formara un consorcio con otras compañías con el
propósito de normalizar Ethernet. La era de los sistemas abiertos de comunicación entre
10 Ethernet 5
computadoras basadas en Ethernet comenzó formalmente en 1980 cuando DIX anunció su
estándar para la red Ethernet de 10 Mbps.
Antes de este lanzamiento formal, en 1979 Bob Metcalfe creó una compañía para
comercializar Ethernet. Él creía que al tener un mercado abierto se podrían expandir las
capacidades brindadas a los usuarios de computadoras. Así fue que fundó la compañía 3Com
(Computer communication compatibility).
Ethernet prosperó durante los años 80, pero a medida que el crecimiento de las
computadoras instaladas se hacía más significativo los problemas inherentes al sistema
original de coaxial grueso se hacían más frecuentes, por ejemplo al hacer un tendido de
coaxial en un edificio. Con la aparición de Ethernet de coaxial delgado a mediados de los 80 la
cosa mejoró un poco pero las dificultades principales persistían. Dado que el sistema basado
en coaxial (tanto grueso como delgado) es un sistema en bus en donde todas las estaciones
comparten un cable en común, una falla en el cable deja a toda la red fuera de servicio.
La invención de Ethernet de par trenzado a finales de los 80 por una compañía llamada
SynOptics Communications, convirtió a esta tecnología de red en un sistema de topología
estrella mucho más confiable en donde todas las computadoras se conectan a un hub
(concentrador) central. Un sistema así es más fácil de instalar y de administrar, además de ser
más fácil la localización de fallas. Éste fue el primer rediseño importante de Ethernet desde la
versión original de Metcalfe. Sin lugar a dudas, el uso de esta tecnología de par trenzado fue lo
que le dio a Ethernet un crecimiento explosivo.
Con la invención de Fast Ethernet comenzaron a operar sistemas multi velocidad, esto
es a 10 Mbps o 100 Mbps. A través de un proceso de autonegociación la velocidad de
transmisión entre dos máquinas se ajusta automáticamente para que funcionen las dos a la
misma tasa de transmisión.
El sistema Ethernet
Un sistema de Red de Área Local Ethernet está basado en hardware y software que
permite entregar datos digitales entre computadoras conectadas a dicha red. El sistema
original Ethernet, es decir el desarrollado por Robert Metcalfe y sus colegas y publicado
6 10 Ethernet
oficialmente como estándar de DIX, es un sistema que opera en modo half duplex (semi
duplex en castellano). Half duplex significa que una computadora que está enviando datos no
los puede estar recibiendo simultáneamente desde otra computadora. El ejemplo más común
de comunicación half duplex es el walkie talkie: la comunicación es en ambos sentidos, pero
habla uno o habla el otro, no los dos simultáneamente. En este sistema Ethernet half duplex
varias computadoras comparten un canal de comunicación en común (topología bus) que para
ser accedido sin conflictos (o al menos con conflictos administrados inteligentemente) utilizan
un protocolo de acceso al medio (MAC, Media Access Control) basado en el sensado de
portadora (esto es, la “escucha” del canal) y la detección de posibles colisiones. El nombre
completo de todo esto, en Inglés, es Carrier Sense Multiple Access with Collision Detection
(Acceso Múltiple con Sensado de Portadora y Detección de Colisiones) o protocolo CSMA/CD
como ya vimos en otro capítulo. Hasta la aparición de los switches (conmutadores) el sistema
half duplex fue el modo de operación que usó el sistema Ethernet.
Para una mejor descripción podríamos decir que el sistema Ethernet consta de 4 partes:
El frame o trama, formado por un conjunto de bits que transporta datos a través
del sistema.
Dirección de Dirección de
Preámbulo Tipo Datos CRC
Destino Origen
10 Ethernet 7
A continuación del preámbulo se encuentran los campos de dirección de destino y
dirección de origen. La asignación de direcciones es controlada por la Asociación de Estándares
IEEE (IEEE-SA) quien administra una porción del campo de dirección. La IEEE-SA le asigna a
cada fabricante de interfaces de red un bloque de 24 bits que es único (Organizationally
Unique Identifier, OUI). Este identificador de 24 bits es único para cada fabricante de
interfaces de red y de esta manera se evita el problema de que haya dos interfaces de red, de
dos fabricantes diferentes, que tengan la misma dirección de red. Con esto se elimina la
necesidad de administrar localmente cada dirección de red. Luego veremos con algo más de
detalle el significado de direccionamiento local y global.
Un fabricante de interfaces Ethernet crea una única dirección Ethernet de 48 bits para
cada unidad por él fabricada agregándole 24 bits adicionales a los 24 que le asignó la OUI.
Estos 24 bits adicionales también son únicos para cada unidad fabricada por ese fabricante y
representan el número de serie de la interfaz. Esta dirección resultante de 48 bits conforma la
dirección física de Ethernet o dirección de Control de Acceso al Medio, conocida como MAC
Address.
El siguiente campo es el campo de datos, que puede tener una extensión de entre 46 y
1500 bytes. Es obligatorio que este campo tenga al menos 46 bytes de extensión. Esta
extensión mínima asegura que la trama Ethernet tenga una duración de tiempo suficiente para
que pueda ser “escuchada” por cada una de las demás estaciones conectadas a la red. Cada
estación debe escuchar las tramas dentro del máximo tiempo de ida y vuelta de la señal de
propagación que transmite dicha trama. Esto se explicará con más detalle más adelante. Si el
campo de datos es menor a 46 bytes entonces se utilizan bytes de relleno para completar los
46 bytes mínimos.
El sistema de transmisión Ethernet es del tipo broadcast, es decir del tipo difusión. Eso
significa que cada trama que es transmitida a una cierta estación destinataria es en realidad
“escuchada” por todas las estaciones que están conectadas a la red. Cada estación compara la
dirección que aparece en el campo Dirección de Destino con su propia MAC Address. Si las
direcciones difieren entonces descarta la trama transmitida por la estación transmisora. Si las
direcciones son iguales entonces interpreta que la trama estaba dirigida a él y procesa la
trama completa. Cuando las direcciones difieren, la estación destinataria interrumpe el
8 10 Ethernet
procesamiento de la trama recibida por difusión inmediatamente después de leer el campo de
dirección de destino y verificar que no coincide con su propia dirección. Cada estación, antes
de transmitir una señal Ethernet, escucha el canal y verifica que esté desocupado. El
mecanismo para acceder al canal y transmitir una señal Ethernet se llama protocolo CSMA/CD.
Cada estación, antes de transmitir, debe esperar hasta que no haya señal presente en
el canal. Si no hay señal presente entonces transmite. Si hay señal presente es porque otra
estación está transmitiendo (hay portadora presente en el canal) y todas las demás estaciones
con intenciones de transmitir deben esperar hasta que el canal se desocupe. A esta parte del
protocolo hace referencia el término carrier sense o sensado de portadora.
Con el término Multiple Access se hace referencia a que son muchas las estaciones que
intentan transmitir y todas con la misma prioridad.
Dado que todas las estaciones tienen igual oportunidad para transmitir es posible que
dos o más estaciones hayan sensado el canal como desocupado y comiencen a transmitir sus
tramas simultáneamente. Cuando esto ocurre, los dispositivos de señal de las interfaces
Ethernet detectan la colisión de señales y en consecuencia las estaciones que estaban
transmitiendo dejan de transmitir. Antes de volver a intentar una retransmisión cada estación
espera un tiempo aleatorio. Luego de concretarse una transmisión exitosa, si la misma
estación necesita enviar inmediatamente otra trama vuelve a ejecutar el protocolo CSMA/CD;
es decir que se ejecuta cada vez que debe transmitir una trama. Esto le otorga igualdad de
oportunidades a todas las estaciones.
Cuando se produce una colisión, cada estación involucrada espera un tiempo aleatorio
antes de retransmitir. Si todas esperaran un mismo tiempo fijo volverían a colisionar de nuevo
en el próximo intento. El tiempo de espera aleatorio es un múltiplo entero de una cierta unidad
de tiempo, por lo que puede ocurrir que en el segundo intento dos estaciones vuelvan a
colisionar ya que les correspondió el mismo tiempo de espera aleatorio. Si esto ocurre, ambas
vuelven a esperar otro tiempo aleatorio hasta que finalmente puedan transmitir sin colisión.
Este proceso de espera se llama algoritmo de retroceso exponencial binario y lo trataremos
con mayor detalle más adelante.
Veamos ahora con más detalle el protocolo de control de acceso al medio que se
describió en los últimos párrafos anteriores. Recordemos que este protocolo MAC está basado
en CSMA/CD que se aplica en sistemas semiduplex. Los sistemas full duplex (dúplex completo)
no usan el mecanismo CSMA/CD.
10 Ethernet 9
Dado que no existe un controlador central, cada interfaz Ethernet opera de manera
independiente usando el mismo protocolo MAC. Equipando a todas las interfaces con el mismo
conjunto de reglas todas las estaciones operan de la misma manera.
Dirección de Dirección de
Preámbulo Tipo Datos CRC
Destino Origen
Dirección de Dirección de
Preámbulo Longi- Datos CRC
Destino Origen
tud
Veamos entonces en detalle cada campo de ambas tramas y las diferencias que hay
entre un protocolo y el otro.
El estándar de DIX define en la trama un campo llamado Tipo. La primera versión del
802.3, publicada en 1985, especifica este campo como Longitud, con un cierto mecanismo que
permite que ambos formatos (DIX e IEEE) puedan coexistir en una misma red. Debido a este
mecanismo la mayoría de los fabricantes de software para redes siguieron usando el campo
como Tipo y el estándar IEEE 802.3 fue posteriormente modificado llamando a este campo de
manera dual Tipo/Longitud, el cual se adapta a uno u otro formato dependiendo el uso.
La Figura 2 muestra tanto la versión DIX como la IEEE de la trama Ethernet. Como se
ve, ambas tienen la misma longitud total de trama y la misma cantidad de campos, por lo que
las interfaces Ethernet pueden usarse para transmitir cualquiera de las dos versiones de
tramas. En tal caso, la diferencia radica en el contenido de los campos y en la interpretación
de esos contenidos que deben hacer las estaciones transmisoras y receptoras.
10 10 Ethernet
Preámbulo
A pesar de que Fast Ethernet (100 Mbps) y Gigabit Ethernet usan otro mecanismo de
sincronismo y no necesitan el campo preámbulo, este campo se sigue manteniendo en estos
dos casos sólo para mantener compatibilidad con la trama originalmente definida.
En el estándar de DIX el campo preámbulo consta de 8 bytes, cada uno con una
secuencia alternada de unos y ceros. El último byte de este campo tiene 6 bits con unos y
ceros alternados y los dos últimos bits son “1”, “1”. Estos dos bits indican que se ha llegado al
final del preámbulo y que a continuación comienzan los campos que llevan información.
Cada interfaz Ethernet conectada a la red comienza a leer la trama que está siendo
transmitida en ese momento por otra interfaz (es decir, una trama que está “puesta” en el
cable o medio de transmisión), comenzando por el preámbulo para sincronizarse y siguiendo
luego con el campo de dirección de destino. Si al terminar de leer el campo de dirección de
destino la interfaz comprueba que la dirección de destino que allí aparece no concuerda con su
propia dirección Ethernet, significa que no es una trama dirigida a ella y por lo tanto ignora el
resto de los campos que vienen a continuación en esa trama y directamente no los lee.
48 bits de dirección
10 Ethernet 11
formato hexadecimal, muchas veces con los tres primeros bytes separados por dos puntos de
los segundos tres bytes. Por ejemplo, la dirección de origen 02608C0876543 se muestra como
02608C:876543. Los primeros tres bytes identifican al fabricante de la interfaz mientras que
los tres últimos bytes identifican a una interfaz en particular de ese fabricante (es como un
número de serie). Esto es lo que se conoce como MAC Address. La Figura 4 muestra otros
formatos en hexadecimal que se usan en la escritura de la MAC address, además del recién
comentado.
DIRECCIÓN MAC
Asignado por Asignado por
la IEEE el fabricante
02608C 876543
02608C:876543
02 – 60 – 8C – 87 – 65 – 43
02:60:8C:87:65:43
02.60.8C.87.65.43
Dentro del campo dirección, el subcampo I/G (Individual / Group) de un bit de longitud
es puesto a 0 para indicar que la trama va destinada a una sola estación individual
(Individual), mientras que cuando se pone en 1 es para indicar que la trama va dirigida a un
grupo de estaciones (Group). Un caso especial de dirección de grupo es cuando todos los bits
del campo de dirección son puestos a 1, lo cual significa que se trata de una dirección de
broadcast, es decir que la trama va destinada a todas las estaciones de la red y por lo tanto
debe ser aceptada por todas ellas. En hexadecimal es “FFFFFFFFFFFF”. Cuando la dirección
especifica una sola estación de destino se habla de dirección unicast, si es de grupo es
multicast y si son todas las estaciones es broadcast.
En la versión de DIX, el subcampo U/L no se usa ya que las direcciones son siempre
administradas universalmente.
12 10 Ethernet
bytes. Los tres primeros bytes son asignados al fabricante de la NIC por la IEEE y los tres
últimos son asignados por el fabricante de la NIC.
Campo Tipo
El campo Tipo es aplicable sólo al formato Ethernet de DIX y tiene una longitud de 2
bytes. Este campo está inmediatamente antes del campo Datos e identifica a qué protocolo de
alto nivel (capa 3) debe enviarse el contenido del campo datos.
No perdamos de vista que la trama Ethernet (sea versión DIX o IEEE) corresponde a
la capa 2 del modelo OSI, es decir, la capa de enlace de datos. Por lo tanto, cuando la capa
2 de la estación receptora reciba toda la trama completa, debe determinar a qué protocolo de
capa 3 debe pasarle el campo datos de la trama. En una red LAN hay numerosos protocolos de
capa 3 que se pueden ejecutar o bien se están ejecutando al mismo tiempo. El protocolo IP
seguramente es el más conocido aunque no el único; ARP es otro, por ejemplo. Por lo tanto,
cuando la capa 2 de la estación receptora recibe la trama Ethernet se pregunta: ¿A quién de la
capa 3 le entrego el contenido del campo Datos? ¿Al protocolo IP que está arriba mío? ¿Al
protocolo ARP que está arriba mío? La respuesta está en el contenido del campo Tipo.
Según el valor que tenga el campo Tipo, la capa 2 entregará el contenido del campo
datos a un cierto protocolo de capa 3. Esencialmente cada protocolo de cada capa del modelo
OSI es una subrutina de software (por ejemplo una librería tipo *.dll), por lo que el contenido
del campo datos es entregado a la subrutina de software de la capa 3 que corresponde al
protocolo identificado por el campo tipo.
Campo Longitud
10 Ethernet 13
El campo Longitud pertenece al protocolo IEEE 802.3. Cuando este protocolo fue
publicado inicialmente en 1985, no se incluyó el campo Tipo sino que se incluyó en su lugar el
campo Longitud. Posteriormente en 1997 IEEE oficializó el uso del campo Tipo en su protocolo,
manteniendo los identificadores originales que había asignado Xerox pero quedando bajo su
responsabilidad la asignación de los nuevos identificadores. En la versión más reciente del IEEE
802.3 este campo se llama ahora Tipo/Longitud, y según el valor que tenga este campo se
comporta como Tipo o como Longitud.
Lo que hace entonces el campo Longitud es indicar cuál es la longitud del campo datos
que se está transmitiendo en la trama, sin contar la cantidad de bytes de relleno, si los hay.
Este campo además trabaja en conjunto con un subcampo que va dentro del campo Datos y
que se llama Control Lógico de Enlace, Logical Link Control o LLC. El funcionamiento de este
LLC viene especificado por la norma IEEE 802.2 y se utiliza para definir a qué protocolo de
capa 3 pertenece el campo Datos que viene transportando la trama, cumpliendo de algún
modo la función del campo Tipo del estándar de DIX. Este encabezado LLC no se usa en la
norma Ethernet de DIX.
Cuando el campo está definido en forma dual como Tipo/Longitud, su función queda
definida de acuerdo al valor que contiene este campo. Ya que la longitud del campo datos no
puede ser mayor que 1500 (decimal), cuando el campo Tipo / Longitud es mayor que este
valor entonces funciona como Tipo. Si es menor entonces funciona como Longitud.
Obviamente, si funciona como Tipo entonces el encabezado LLC no se usa.
Campo Datos
Este es el campo que transporta la información útil de la trama. Una vez que se ha
recibido toda la trama, el protocolo de capa 2 descarta todos los encabezados como así
también el campo CRC y se queda con el campo Datos que es la parte útil y la que debe ser
enviada a la capa 3. No nos olvidemos que la trama Ethernet al pertenecer a la capa 2 le está
proveyendo un servicio a la capa 3 (capa de red). En la estación transmisora, la capa 3 le pasa
un paquete de datos a la capa 2, ésta le pone los encabezados necesarios y el CRC, se la pasa
a la capa física, y ésta la transmite. En la estación receptora, la capa física recibe los bits
físicos, los convierte en unos y ceros, y se los pasa a la capa 2, quien le quita los encabezados
y el CRC y se queda con el campo Datos que es la parte útil en términos del servicio que
presta a la capa 3.
En el protocolo de DIX el campo Datos tiene una longitud máxima de 1500 bytes y una
longitud mínima de 46 bytes. Como se dijo antes, esta longitud mínima sirve para garantizar
una longitud mínima de la trama completa. Si los datos que la capa 3 le envía a la capa 2
tienen una longitud menor a 46 bytes, el protocolo de capa 2 se encarga de poner bytes de
relleno hasta completar 46 bytes.
En el protocolo IEEE 802.3 el campo de datos también tiene un máximo de 1500 bytes
y un mínimo de 46, esto último por las mismas razones expuestas antes. También se usan
bytes de relleno de ser necesario. Sin embargo, para el caso IEEE 802.3, en el campo de datos
viaja también el encabezado LLC, como se mencionó antes, y que proporciona información de
control como así también información referente al protocolo de capa 3 al que está asociado el
campo datos (cumpliendo de alguna manera la misma función que el campo Tipo de DIX). Los
bytes que conforman este encabezado LLC viajan al comienzo del campo Datos y está
especificado por el estándar IEEE 802.2.
Campo CRC
14 10 Ethernet
modo, el polinomio de mensaje m(X) está formado por los campos que van desde Dirección de
Destino hasta Datos. El valor obtenido como bits de redundancia es puesto en el campo CRC.
Este campo CRC es un número binario de 32 bits. Cada bit corresponde al coeficiente de
un polinomio de grado n-1, es decir de grado 31. Para calcular el contenido del campo CRC se
considera a los bits de los campos de dirección, tipo/longitud y datos como los coeficientes de
un polinomio m(X) de grado n-1. El primer bit del campo Dirección de Destino corresponde al
coeficiente de grado n-1 de dicho polinomio, mientras que el último bit del campo Datos
corresponde al coeficiente de grado 0. Este polinomio m(X) es multiplicado por X32 y luego
dividido por el siguiente polinomio generador G(X):
G( X ) X 32 X 26 X 23 X 22 X 16 X 12 X 11 X 10 X 8 X 7 X 5 X 4 X 2 X 1
Esta división da como resultado un cociente y un resto. Este último es el que se usa
como valor del campo CRC.
Una vez que la trama es recibida por la estación receptora, ésta utiliza el mismo
polinomio generador G(X) para calcular el síndrome (determinar si hubo error). Si la división
entre G(X) y el mensaje recibido (incluyendo el CRC) da resto cero, se considera que no tiene
errores y por lo tanto la trama es aceptada. Si el resto de la división es distinto de cero, se
considera que la trama tiene errores y por lo tanto se descarta. Como se ve, el sistema
detecta errores, no los corrige. Las otras dos situaciones bajo las cuales la trama recibida es
descartada es cuando el receptor comprueba que no hay un número entero de bytes recibidos,
y cuando la longitud del campo Datos no es igual a lo que dice el campo Longitud (este caso
sólo en las tramas IEEE 802.3). Cuando una trama es descartada por cualquiera de los
motivos anteriores, la capa 2 receptora NO solicita la retransmisión de la misma y NO
avisa nada a nadie. En algún momento, alguna de las capas superiores se dará
cuenta que falta un paquete y solicitará su retransmisión a la misma capa de la
estación transmisora (mediante un diálogo virtual capa a capa como ya hemos
aprendido).
Una vez que se transmite el último bit de la trama, el transmisor espera un pequeño
tiempo llamado intervalo intertrama o tiempo intertrama (indicado como IFG), antes de
transmitir la siguiente trama que pudiera tener disponible en forma inmediata. Es decir que el
transmisor no transmite una trama a continuación de la otra sino que espera un breve
intervalo de tiempo entre tramas consecutivas. En Ethernet de 10 Mbps este tiempo es de 9,6
µs (96 bits). Sirve para que los circuitos electrónicos de las interfaces tengan tiempo para
reestablecerse y volver a sincronizarse con el comienzo de la próxima trama.
Luego de haber visto la descripción de la trama Ethernet, en sus dos versiones, veamos
a continuación cuáles son las reglas usadas para que las tramas puedan viajar a través de la
red sin conflictos y de manera organizada para poder “convivir” con todas las estaciones
conectadas a la red. Esto es lo que se conoce como control de acceso al medio.
No perdamos de vista que la explicación siguiente es para el caso half duplex. Antes de
comenzar la descripción de este mecanismo definamos los siguientes puntos:
10 Ethernet 15
Cuando una señal está siendo transmitida sobre el canal se dice que hay
presencia de portadora (carrier).
Cuando una estación conectada a la red desea transmitir una trama espera
hasta que el canal esté desocupado, condición esta última denominada ausencia
de portadora.
Una vez que el canal queda desocupado, la estación espera un tiempo IFG y
luego transmite la trama.
Veamos cómo hace una estación para saber si está en condiciones de transmitir y cómo
es que transmite entonces su trama y qué hace cuando ocurre una colisión. Las reglas que
gobiernan este mecanismo son como sigue.
Este tiempo de espera Interframe gap o IFG sirve para que la estación receptora se
vuelva a sincronizar. Este tiempo IFG está definido en 96 bits de duración. Esto significa, para
Ethernet de 10 Mbps, un período de tiempo de 9,6 µs. O bien 960 ns para Ethernet de 100
Mbps, o 96 ns para Gigabit Ethernet (1000 Mbps).
Una vez transmitida la señal de jam, las estaciones involucradas en la colisión deben
volver a intentar retransmitir sus tramas. Para ello, esperan un período de tiempo aleatorio y
vuelven a transmitir su trama, empezando por el paso 1. Este proceso se llama backoff. La
elección de un tiempo de espera aleatorio (diferente para cada estación involucrada en la
colisión) se hace para que no vuelvan a colisionar estas estaciones.
16 10 Ethernet
4. Una vez que la estación transmisora ha logrado transmitir sin colisión 512 bits
de la trama (sin contar el preámbulo), se dice que ha adquirido el canal o tomado el canal.
Esto significa que puede terminar de transmitir la trama sin posibilidad de colisión. La unidad
de tiempo de 512 bits se la conoce como slot time (ranura de tiempo) del canal Ethernet. Esto
se aplica a Ethernet de 10 y 100 Mbps. En Gigabit Ethernet es diferente y lo veremos luego
con detalle.
Si se trata de una retransmisión por colisión, una vez tomado el canal y terminada de
retransmitir la trama, la estación borra el contador de colisiones, el cual se usa para el proceso
de backoff. Si al transmitir la siguiente trama aparece una nueva colisión, el proceso de
backoff comienza desde el principio otra vez, tal como se explicó anteriormente.
Debe quedar claro que cada estación transmite una trama a la vez, y cada estación
aplica las mismas reglas de acceso al medio cada vez que desea transmitir una trama. De esta
manera se asegura igualdad de oportunidades a todas las estaciones. Si la red está muy
cargada porque hay mucho tráfico entonces estará lenta (dado que hay más probabilidad de
colisiones), pero esa lentitud se verá reflejada por igual en todas las estaciones.
La ranura de tiempo de 512 bits está basada en el máximo tiempo de propagación, ida
y vuelta, de la señal eléctrica que viaja por el canal en una red Ethernet. Este tiempo de
propagación depende de la longitud y el tipo de cable utilizado en una red en particular y de la
cantidad de dispositivos que la señal eléctrica atraviesa (un repetidor por ejemplo). Los
estándares brindan especificaciones para las máximas longitudes de cable y la máxima
cantidad de repetidores que se debe usar en un determinado tipo de red. El tiempo de
propagación de ida y vuelta no tiene que ser mayor al tiempo establecido por la ranura de
tiempo de 512 bits (51,2 µs para Ethernet de 10 Mbps).
Cada estación puede escuchar el canal sólo cuando está transmitiendo. Por lo
tanto, una vez que transmitió el último bit, ya no puede escuchar el canal. Esto
significa que una colisión sólo puede ser escuchada cuando la estación
transmite. Cuando deja de transmitir, ya no puede enterarse de que hubo una
colisión.
El tiempo que le lleva a una señal propagarse desde un extremo a otro en una
red de máxima longitud. Esto se llama tiempo de propagación de ida y vuelta de
capa física.
Ambos elementos son calculados en términos del número de tiempos de bit requeridos.
Sumando los dos elementos antes mencionados más algunos bits extra como factor de
seguridad, nos da una ranura de tiempo de 512 bits de duración.
Entonces, el tiempo que se requiere para transmitir 512 bits es levemente superior que
el tiempo requerido para que una señal se propague, ida y vuelta, hasta el extremo más
alejado de la red, incluyendo el tiempo requerido para transmitir la secuencia de jam. De esta
manera, aun transmitiendo la trama más pequeña permitida, la estación transmisora tendrá
suficiente tiempo para “recibir noticias” acerca de la colisión, incluso si ésta ocurrió en el
extremo más alejado de la red.
No hay que olvidar que la ranura de tiempo incluye el tiempo de propagación a través
de todos los elementos de red conectados a la red (cables, repetidores, etc.). Si la cantidad de
elementos de red instalada es muy grande, el tiempo de propagación ida y vuelta será muy
grande y esto afectará de manera negativa al funcionamiento de la red.
10 Ethernet 17
En el sistema original de 10 Mbps en cable coaxial la señal puede ir y volver, a lo largo
de aproximadamente 2800 metros, en 512 tiempos de bit, lo cual implica una muy buena
extensión de red. Al sistema 10BASE-T se le impuso una longitud máxima de segmento de 100
metros no por cuestiones de tiempo de propagación sino por limitaciones en la calidad de la
señal.
El uso de la ranura de tiempo como parámetro básico en los cálculos de acceso al medio
les permite garantizar a los diseñadores que el sistema funcionará adecuadamente bajo
cualquier combinación posible de elementos de red y longitud de segmentos de cable. La
ranura de tiempo se usa de dos maneras:
Establece el máximo límite superior para que una estación adquiera el canal. Al
cabo de la transmisión de los primeros 512 bits (sin contar el preámbulo), todo
el cable estará “lleno” de tensión eléctrica y entonces todas las estaciones
estarán detectando portadora. Consecuentemente no transmitirán. Es decir,
después de 512 bits de tiempo, si la estación transmisora no escuchó ninguna
colisión, sabe que su señal está presente a lo largo de todo el cable y ninguna
otra estación podrá transmitir, por lo tanto puede completar la transmisión de su
trama sabiendo que no va a haber colisión.
Sirve también como unidad de tiempo usada por el algoritmo de backoff para
generar el tiempo de espera luego de la ocurrencia de una colisión. Luego
veremos esto.
Las colisiones no son errores. Debe quedar bien en claro que una colisión no es
sinónimo de anomalía ni falla del sistema. Está previsto que las colisiones
ocurran, forman parte del sistema y así fue diseñado. Y cuando ocurren son
administradas en forma predeterminada de acuerdo a un algoritmo
perfectamente prestablecido.
Las colisiones no causan corrupción de datos. Como hemos visto, cuando ocurre
una colisión sobre un sistema Ethernet diseñado apropiadamente, será dentro de
los primeros 512 bits de la transmisión. Cualquier trama que colisiona es
reenviada por su transmisor en forma automática. Cualquier trama de menos de
2
No confundir con la velocidad de propagación, que es la misma.
18 10 Ethernet
512 bits es considerada fragmento de una colisión y es descartada
automáticamente.
Entonces, una vez más debe quedar claro que las colisiones forman parte del normal
funcionamiento de la red Ethernet y cuando ellas ocurren son administradas adecuadamente
por un algoritmo de backoff diseñado para ello.
Tampoco hay que confundir colisión con error de bit, el cual es detectado por el campo
CRC. El error de bit es causado por el ruido presente en el canal de comunicación, que hace
que el receptor pueda confundir un “1” con un “0”. Si hay un error de este tipo, el CRC lo
detecta, la trama se descarta, y no se hace nada más (no se solicita retransmisión). En cambio
la colisión se debe a la transmisión simultánea de dos o más estaciones. Cuando esto ocurre,
las tramas se retransmiten.
Si bien cada estación escucha el canal antes de transmitir, puede ocurrir que dos o más
estaciones escuchen el canal al mismo tiempo y lo encuentren desocupado, por lo que
transmitirán simultáneamente y se producirá una colisión. Una colisión puede ocurrir
únicamente durante los primeros 512 bits. Como ya se mencionó, una vez pasada la ventana
de colisión o ranura de tiempo se dice que la estación ha adquirido el canal y ya no hay
posibilidad de que ocurra una colisión.
El método usado para detectar una colisión es dependiente del medio. En un cable
coaxial, los transceptores detectan una colisión mediante el monitoreo del nivel de señal DC en
el cable. Cuando dos o más estaciones colisionan se produce un aumento del nivel de tensión
DC que hace disparar un circuito de detección de colisiones en el transceptor. Un transceptor
para cable coaxial está monitoreando continuamente el nivel medio de tensión en el cable, y
envía una señal de detección de colisión (32 bits de jam) cuando este nivel DC supera cierto
límite.
Si una colisión ocurre después de la ventana de colisión de 512 bits entonces estamos
en presencia de un fenómeno anormal, llamado colisión tardía (late collision) y en este
caso sí se trata de un problema serio de la red. Cuando este fenómeno ocurre el sistema
Ethernet no retransmite la trama colisionada y el problema debe ser subsanado por el software
de aplicación (residente en las capas superiores) quien sí se encargará de retransmitir las
tramas colisionadas. Debido a esto último, se pierde mucho tiempo en el proceso, por lo que
aun habiendo poca cantidad de colisiones tardías éstas pueden afectar seriamente al
desempeño de la red por lo que el problema debe ser resuelto lo antes posible.
El fenómeno de colisiones tardías también puede ocurrir cuando hay problemas con el
medio de comunicación, como por ejemplo un segmento de par trenzado con excesiva señal de
crosstalk.
Una vez que se ha detectado una colisión común, las estaciones transmisoras
reprograman sus transmisiones usando un algoritmo de backoff de modo de minimizar las
probabilidades de una nueva colisión. Este algoritmo también permite a las estaciones de la
red a modificar su comportamiento de acuerdo al nivel de actividad en la red. Cuanto más
estaciones hay es más factible que se produzcan múltiples colisiones (entre más de dos
estaciones) y el algoritmo de backoff está diseñado para contemplar esta situación.
10 Ethernet 19
Cuando el transceptor conectado a la red Ethernet detecta una colisión, envía una señal
de presencia de colisión hacia la interfaz de la estación. Si la colisión es detectada en la parte
inicial de la trama (preámbulo), la estación transmisora no pondrá la señal de jam hasta que
no haya terminado de transmitir el preámbulo. Llegado ese instante, envía hacia la red la
secuencia de 32 bits de jam y detiene su transmisión. De esta manera queda presente en la
red una señal de colisión durante un tiempo suficiente como para que sea “escuchada” por las
demás estaciones. Las estaciones que quedaron involucradas en la colisión deben reprogramar
una retransmisión de sus tramas. Esto lo hacen generando un tiempo de espera antes de la
retransmisión, basado en un número aleatorio.
La fórmula que usa el algoritmo de backoff para calcular este rango r es:
0 r 2k (1)
Veamos cómo funciona este algoritmo. Supongamos que una estación está enviando
una trama y se produce una colisión. En el primer intento de retransmisión k vale 1, por lo
tanto los valores posibles de r son 0 y 1, de los cuales cada estación que tiene que retransmitir
elige aleatoriamente uno de ellos. Dado que el tiempo de espera para la retransmisión es uno
de estos números multiplicado por 512 bits, el tiempo de espera posible para este caso puede
ser 0 o 512, dependiendo del valor de r seleccionado aleatoriamente. Si el número r
seleccionado fue 0 entonces el tiempo de espera es 0 nanosegundos y la retransmisión ocurre
inmediatamente. En cambio si el número r seleccionado fue 1 entonces el tiempo de espera es
51,2 µs para el caso de una red Ethernet de 10 Mbps.
20 10 Ethernet
Del proceso descripto en el párrafo anterior está claro que si las dos estaciones
retransmisoras involucradas en la colisión previa hubiesen elegido el mismo valor de r al
calcular el tiempo de espera, una nueva colisión hubiese ocurrido en el proceso de
retransmisión. Cosa que es efectivamente posible y así funciona este algoritmo. Cuando esto
ocurre se debe reprogramar una nueva retransmisión, ahora con un valor de k = 2 lo que da
un conjunto posible de valores de r = 0, 1, 2 y 3 para que uno de éstos sea elegido
aleatoriamente por cada estación retransmisora. El valor elegido determinará cuántas ranuras
de tiempo debe esperar cada estación antes de retransmitir. Si aun así volviese a ocurrir una
nueva colisión porque ambas estaciones eligieron el mismo r entonces se vuelve a ejecutar el
algoritmo, ahora con k = 3.
De la explicación anterior se puede observar que a medida que hay más estaciones y
más tráfico en la red, la probabilidad de colisiones es mayor, por lo que el algoritmo de backoff
tiende a ejecutarse varias veces haciendo crecer la cantidad de enteros r posibles y de esa
manera reduciendo la probabilidad de una nueva colisión en una retransmisión.
Es razonable que en una red con carga de tráfico moderada, una estación adquiera el
canal con un par de intentos de retransmisión. Cuando lo logra, borra el contador de backoff a
cero para que esté listo para otra posible retransmisión a futuro como consecuencia de otra
colisión.
10 Ethernet 21