comunicación de datos - Universidad Nacional de Quilmes

Anuncio
DEPARTAMENTO DE CIENCIA Y TECNOLOGÍA
UNIVERSIDAD NACIONAL DE QUILMES
Roque Sáenz Peña 352 – (B1876BXD) Bernal – Buenos Aires – Argentina
COMUNICACIÓN DE DATOS
ETHERNET
Ethernet es el nombre de la tecnología utilizada para la interconexión de computadoras
en redes LAN. Por allá por mayo de 1973, el investigador Bob Metcalfe, quien trabajaba en
Xerox Palo Alto Research (PARC) en California, Estados Unidos, escribió un memorandum que
describía un sistema de interconexión de computadoras que él había inventado y que permitía
el envío de datos entre éstas o hacia impresoras también conectadas en la red. Este sería uno
de los tantos inventos de Xerox, además de la impresora láser.
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: 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.
Cuando hay muchas estaciones con intenciones de transmitir, el tráfico efectivo
(llamado throughput en Inglés) en la red Aloha es bajo, ya que se producen muchas colisiones.
Por otro lado, si hay pocas estaciones hay menos probabilidad de colisiones, pero el tráfico
efectivo también es bajo puesto que hay pocas estaciones. Se demuestra que el valor de
equilibrio entre estas dos situaciones produce un tráfico efectivo máximo de 18%. Esto
significa que, por ejemplo, en un canal de 100.000 Kbps la máxima velocidad promedio de
transferencia de datos será de 18.000 Kbps.
Invención de Ethernet
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
(múltiple 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 Múltiple Access with Collision Detection (CSMA/CD).
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 Éter 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 coaxil
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 Physical 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 especifica 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 coaxil 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 Physical 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
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 coaxil 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 otras tasas de transmisión. 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.
Año
Norma
IEEE
1985 802.3
Nombre
10 Mbps
50 Ω, cable coaxial de 10mm
1988
1990
1993
1995
10Base-5 (Thick
Ethernet)
10Base-2 (Thin Ethernet)
10Base-T
10Base-F
100Base-T4
10 Mbps
100 Mbps
10 Mbps
100 Mbps
50 Ω, cable coaxial de 5 mm
Cable UTP categoría 3, 100 Ω
Dos fibras multimodo a 850 nm
Cuatro pares cable UTP categoría 3, 100 Ω.
100Base-TX
100 Mbps
Dos pares cable UTP categoría 5, 100 Ω
100Base-FX
Full-Duplex Ethernet
100 Mbps
10 y
100 Mbps
100 Mbps
Dos fibras multimodo a 1300 nm
802.3a
802.3i
802.3j
802.3u
1997 802.3x
1997 802.3y
1998 802.3ac
1998 802.3z
1999 802.3ab
2002 802.3ae
Velocidad
100Base-T2
Virtual LANs (VLANs)
1000Base-SX
1000Base-LX/HX
1000Base-CX
1000Base-T
10 Gigabit Ethernet
1 Gbps
1 Gbps
1 Gbps
1 Gbps
10 Gbps
Descripción
Dos pares cable UTP categoría 3, 100 Ω
Tramas extendidas hasta 1552 bytes para VLANs
Fibra multimodo a 850 nm
Fibra multimodo a 1300 nm
Cable de cobre
Cuatro pares UTP categoría 5, 100 Ω
Fibras monomodo y multimodo, full duplex
solamente.
Tabla I. Principales normas 802.3
En cambio la IEEE fue desarrollando normas de manera tal de poder integrar el
mercado mundial de normas de redes LAN y de esa manera establecer un único conjunto de
normas internacionales que agrupe las diferentes tecnologías tanto actuales como las nuevas
que vayan apareciendo.
Las especificaciones tanto Ethernet como IEEE 802.3 se refieren a características de la
capa 1 y 2 correspondientes al modelo ISO para interconexión de sistemas abiertos (OSI,
Open System Interconnection), es decir la capa física y la capa de enlace de datos.
Identificadores IEEE para las distintas normas 802.3
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 coaxil 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 coaxil 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.
Ethernet
3
En los primeros sistemas, la parte del identificador que daba cuenta del medio físico se
basaba en la longitud del cable en metros. En los sistemas más recientes la IEEE eliminó la
convención 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
coaxil 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 coaxil 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 coaxil delgado. Opera a
10Mbps 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 10Mbps 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. El tema de las categorías de cables lo veremos con más detalle más adelante. Se
adoptó el uso del guión para que se pronuncie “diez base te” y no “diez baset”2.
10Base-F
Es un sistema de 10 Mbps cuyo medio de transmisión es la fibra óptica. Se incluyó
como parte oficial del IEEE 802.3 en noviembre de 1993. Esta norma define 3 especificaciones:
10Base-FB, 10Base-FP y 10Base-FL.
1
Recordemos que 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.
2
En Inglés la pronunciación sería ten baset, bastante parecida a la de basset que es una raza de perros. De ahí que se
haya optado por poner el guión.
4
Ethernet
100Base-T
Variante de Ethernet a 100 Mbps sobre par trenzado.
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 sólo 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, 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.
Ethernet
5
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
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
ayudar a comercializar Ethernet (bah, para ganar plata...). Él creía que al tener un mercado
abierto se podrían expandir las capacidades brindadas a los usuarios de computadoras. Y no se
equivocó. 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 coaxil grueso se hacían más frecuentes, por ejemplo al hacer un tendido de coaxil
en un edificio. Con la aparición de Ethernet de coaxil delgado a mediados de los 80 la cosa
mejoró un poco pero las dificultades principales persistían. Dado que el sistema basado en
coaxil (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 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.
Rediseño de Ethernet a 100 Mbps
El sistema Ethernet original normalizado en 1980 funcionaba a una tasa de bit de 10
Mbps, una velocidad nada despreciable para aquella época. Durante esos años tal tasa de
transmisión era perfectamente compatible con la velocidad de procesamiento de las
computadoras. Sin embargo, a medida que la potencia de procesamiento de las computadoras
fue aumentando, 10 Mbps comenzó a resultar poco y las computadoras conectadas a Ethernet
“pedían más”.
Así, el siguiente rediseño importante de Ethernet consistió en aumentar la tasa de
transmisión por un factor de 10. Un nuevo estándar creó el sistema Fast Ethernet de 100
Mbps, adoptado oficialmente en 1995. Fast Ethernet está basado en par trenzado como así
también en cable de fibra óptica.
Con la invención de Fast Ethernet comenzaron a operar sistemas multi velocidad, esto
es a 10 Mbps ó 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.
Ethernet de 1000 Mbps
En 1998 llegó un nuevo rediseño de Ethernet: otro crecimiento de la tasa de
transmisión por un factor de 10. Esto dio el nacimiento al estándar Gigabit Ethernet, que
describe un sistema que opera a 1000 millones de bits por segundo, tanto sobre par trenzado
como sobre fibra óptica. Una vez más, usando el mecanismo de autonegociación, se pueden
conectar sistemas de diferentes velocidades que se ajustan automáticamente a la velocidad
adecuada que permita interoperar a todas las máquinas involucradas.
6
Ethernet
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
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). Más conocido como
protocolo CSMA/CD. Hasta la aparición de los switches (conmutadores) el sistema half duplex
fue el modo de operación que usó el sistema Ethernet.
Con la llegada de los hubs y los switches el canal en común desapareció y la topología
en estrella entró en escena, permitiendo comunicaciones full duplex y sin usar ya el
protocolo CSMA/CD.
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.
•
El protocolo de control de acceso al medio, que consiste en un conjunto de
reglas utilizadas por las interfaces Ethernet para poder acceder al canal de
manera ordenada teniendo en cuenta que son muchas las computadoras
conectadas a la red y que podrían querer acceder al mismo tiempo.
•
Las componentes de señalización, consistente en dispositivos electrónicos que
envían y reciben señales sobre el canal Ethernet.
•
El medio físico, que consiste en cables y elementos de hardware usados para
transportar las señales digitales entre computadoras que están conectadas a la
red.
El frame Ethernet o trama Ethernet es el corazón de este sistema. El hardware del
sistema es el encargado de mover tramas Ethernet entre computadoras o en forma más
general entre estaciones ya que también se pueden considerar otros dispositivos como
impresoras o cualquier otro equipo conectado a la red. Desde el punto de vista del modelo OSI
la trama Ethernet pertenece a la capa dos, es decir a la capa de enlace de datos. Los bits
de esta trama están agrupados en campos, como se muestra en la Figura 1.
8 bytes
6 bytes
6 bytes
2 bytes
46 a 1500 bytes
4 bytes
Preámbulo
Dirección de
Destino
Dirección de
Origen
Tipo
Datos
CRC
Figura 1. Trama Ethernet
Ethernet
7
La trama comienza con el campo preámbulo, de 8 bytes de longitud ó 64 bits. En un
sistema Ethernet de 10 Mbps este preámbulo entrega al hardware una secuencia de bits para
alertar que una trama se está por comenzar a transmitir. Los sistemas de 100 y 1000 Mbps no
requieren de esta trama de inicio pero para evitar cambios en la estructura de la trama aún se
sigue transmitiendo.
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 Standards
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.
La dirección asignada a cada fabricante corresponde al campo Dirección de Origen. El
campo Dirección de Destino corresponde precisamente a la dirección hacia donde va dirigida la
trama Ethernet. Para una misma estación el campo Dirección de Origen es fijo, mientras que el
campo Dirección de Destino es variable dependiendo de a qué estación se envía la trama.
A continuación de los campos de dirección se encuentra un campo de 2 bytes, ó 16 bits,
llamado campo de tipo (o de longitud en el caso del estándar IEEE). Como veremos con más
detalle más adelante este campo se utiliza para identificar a qué protocolo de capa 3
corresponde el campo de datos de la trama Ethernet. Es decir, a qué protocolo de capa 3 se
debe entregar el campo de datos transportado por la trama (por ejemplo el protocolo IP).
El siguiente campo es el campo de datos, que puede tener una extensión de entre 46 y
1500 bytes. Es mandatorio 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.
Finalmente, el último campo de la trama es una secuencia de verificación de trama
(Frame Check Sequence, FCS) de 32 bits. Este campo FCS contiene un código de redundancia
cíclica (Cyclic Redundancy Checksum, CRC) que verifica la ocurrencia de errores de bit. Este es
un código de tipo polinomial como los que se estudiaron oportunamente en capítulos
anteriores.
Protocolo de control de acceso al medio
El sistema Ethernet half duplex originalmente desarrollado utilizaba el protocolo MAC
(Media Access Control), que consiste en un conjunto de reglas para que varias estaciones
puedan compartir un canal de comunicación en común de manera organizada. Este mecanismo
es bastante simple: cada computadora o terminal conectada a una red Ethernet opera de
manera independiente, no existe un controlador central.
8
Ethernet
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
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.
Es importante aclarar que las colisiones que se producen como consecuencia de
intentos de transmisión simultáneos de varias estaciones no deben interpretarse como un
mal funcionamiento del sistema. Está previsto que el sistema funcione así porque así fue
diseñado y no debe ser motivo de preocupación creyendo que algo anda mal.
Cuando se produce una colisión, las estaciones involucradas esperan un tiempo
aleatorio cada una. Si todas esperaran un tiempo fijo volverían a colisionar de nuevo en el
próximo intento. El tiempo de espera aleatorio es un número entero de unidades 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.
La trama Ethernet que hemos mencionado aquí y el protocolo CSMA/CD se usan en
todos los sistemas Ethernet half duplex, sean estos sobre cable coaxial, par trenzado o fibra
óptica. En el modo full duplex (transmisión y recepción simultánea) el frame sigue
siendo el mismo pero el protocolo CSMA/CD ya no se usa.
Descripción detallada del protocolo MAC
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 o duplex
completo no usan el mecanismo CSMA/CD.
Ethernet
9
En el modo half duplex original, el protocolo MAC permite que un conjunto de
estaciones puedan competir por el acceso de un canal Ethernet compartido, de una manera
imparcial y equitativa. Las reglas de este protocolo determinan cómo se deben comportar las
estaciones conectadas a la red Ethernet, ya sea cuando están por transmitir un frame o
cuando se ha producido una colisión y deben volver a transmitir.
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.
La trama Ethernet descripta originalmente en el protocolo publicado por DIX fue
posteriormente modificada por la IEEE cuando escribió su estándar 802.3. La figura siguiente
repite la trama Ethernet de la Figura 1, en este caso junto con la trama establecida por el
estándar IEEE 802.3. Si bien las diferencias entre ambas tramas son mínimas, es suficiente
para que sean incompatibles entre sí. Esto significa que en una red todas las estaciones
conectadas deben tener NICs (Network Interface Card, Tarjetas de Interfaz de Red)
compatibles con el protocolo Ethernet o con el protocolo IEEE 802.3. Como este último es una
norma internacional prácticamente todos los fabricantes actuales venden tarjetas que cumplen
con el 802.3. Aún quedan algunos pocos productos que cumplen con el protocolo Ethernet o
con ambos y normalmente son usados en los casos que se desean hacer expansiones de redes
relativamente viejas.
8 bytes
6 bytes
6 bytes
2 bytes
46 a 1500 bytes
4 bytes
Preámbulo
Dirección de
Destino
Dirección de
Origen
Tipo
Datos
CRC
8 bytes
6 bytes
6 bytes
2 bytes
46 a 1500 bytes
4 bytes
Preámbulo
Dirección de
Destino
Dirección de
Origen
Longitud
Datos
CRC
Figura 2. Trama Ethernet DIX (arriba) y trama IEEE 802.3 (abajo)
Veamos entonces en detalle cada campo de ambas tramas y las diferencias que hay
entre un protocolo y el otro.
La especificación Ethernet determina tanto la estructura de la trama como así también
cuándo una estación puede transmitirla. Como venimos diciendo, el control del acceso al medio
está basado en el sensado de portadora previo a la transmisión y en la detección de colisiones,
todo esto resumido en el acrónimo CSMA/CD. Cuando la IEEE escribió su propio protocolo
802.3 ciertamente hizo algunos cambios mínimos y un cambio relativamente significativo en el
campo Tipo de la trama Ethernet original.
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
10
Ethernet
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 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.
Preámbulo
La trama comienza con una secuencia de 64 bits correspondiente al campo preámbulo.
Esta secuencia permite que las interfaces Ethernet de 10 Mbps conectadas en la red se puedan
sincronizar antes de que comiencen a llegar los datos de los siguientes campos. Básicamente
este campo permite que se puedan gastar algunos pocos bits para que las demás estaciones
“se acomoden” antes de recibir datos. Es como un escudo protector que está delante de los
campos de la trama.
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 octetos o bytes, cada uno con
“unos” y “ceros” en forma alternada. Es decir, una secuencia alternada de unos y ceros. El
último byte de esta secuencia 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.
En la especificación IEEE 802.3 el campo preámbulo está dividido en dos partes, la
primera con 7 bytes y la segunda con un byte, llamada Start of Frame Delimiter (SFD) o sea,
Delimitador de Comienzo de Trama. La secuencia de bits son unos y ceros alternados como en
el caso de DIX y los dos últimos bits de SFD son 1,1 —¡como en el estándar de DIX! Es decir,
en la práctica no hay ninguna diferencia entre el preámbulo de DIX y el de la IEEE.
Dirección de Destino (Destination Address)
A continuación del campo de preámbulo viene el campo dirección de destino. El
contenido de este campo identifica la computadora o terminal a la que va dirigida la trama que
se transmite. Cada interface Ethernet tiene asignada una dirección única, de 48 bits, llamada
comúnmente dirección de hardware o también dirección física. El campo de dirección de
destino contiene un número de 48 bits que corresponde a la dirección de la interfaz Ethernet
instalada en la computadora o terminal hacia donde va dirigida la trama. Es decir, indica a qué
computadora debe ser enviada la trama generada por la estación transmisora. Este campo de
dirección de destino puede tener además ciertos valores especiales que indican por ejemplo
una dirección multicast (multidifusión) o broadcast (difusión). Una dirección multicast implica
transmisión de la trama a varias computadoras del total que está conectado a la red, mientras
que una dirección de broadcast (difusión) implica la transmisión de la trama a todas las
computadoras conectadas a la red.
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.
Ethernet
11
I/G
U/L
46 bits de dirección
48 bits de dirección
Figura 3. Formato del campo de dirección de origen y dirección de destino
La Figura 3 muestra la composición del campo de dirección de destino y dirección de
origen. Tanto la dirección de destino como la de origen se representan normalmente en
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. Como veremos luego, 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 (sería 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
Figura 4. Cuatro modos de notación hexadecimal diferentes
para la dirección MAC
El subcampo I/G (Individual / Group) de un bit de longitud es puesto a 0 para indicar
que el frame va destinado 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 se habla de
dirección unicast, si es de grupo es multicast y si son todas las estaciones es broadcast.
En el campo dirección de origen el subcampo I/G siempre está puesto a 0.
El subcampo U/L (Universal / Local) sirve para identificar si la dirección es
universalmente administrada (Universal) o localmente administrada (Local). Cada Interfaz
Ethernet tiene una dirección única que se graba en una ROM al momento de su fabricación.
Para asegurar que esta dirección universalmente administrada es única y no está repetida, la
IEEE asigna bloques de direcciones a cada fabricante de interfaces. Esta dirección está
compuesta por un prefijo de 3 bytes, el cual identifica al fabricante y es asignado por la IEEE,
y un sufijo de 3 bytes que es asignado a la interfaz por el fabricante de la misma. Por ejemplo,
el prefijo hexadecimal 02608C identifica a una NIC fabricada por 3Com, mientras que el
12
Ethernet
00805F identifica a una NIC fabricada por Compaq. La dirección completa, está claro, queda
compuesta por 6 bytes, como se ve en la Figura 3.
Si bien el uso de direccionamiento universal elimina la posibilidad de duplicado de
direcciones, en algunos casos es conveniente utilizar direcciones administradas localmente ya
que le otorga facilidad de administración a cierto tipos de redes.
En la versión de DIX, el subcampo U/L no se usa ya que las direcciones son siempre
administradas universalmente.
Dirección de origen (Source Address)
El campo Dirección de Origen identifica a la estación que está transmitiendo la trama.
Como se mencionó antes esta dirección (al igual que la de destino) tiene una longitud de 6
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.
Protocolo
Valor hexadecimal
Experimental
Xerox XNS
Ipv4
X.75 Internet
X.25 Level 3
Address Resolution Protocol (ARP)
Reverse ARP
SNMP
IPv6
0101-D1FF
0600
0800
0801
0805
0806
8035
814C
86DD
Tabla I. Algunos valores típicos del campo tipo, en hexadecimal
La Tabla I muestra algunos valores representativos, expresados en hexadecimal,
correspondientes al campo tipo y que indican a qué protocolo de capa 3 debe enviarse el
Ethernet
13
contenido del campo datos. Por ejemplo, si el campo Tipo tiene el valor hexadecimal 0800
significa que el contenido del campo Datos debe enviarse al software de capa 3 que se encarga
de ejecutar el protocolo IP.
Campo Longitud
Tanto en el protocolo de DIX como en el de IEEE el tamaño mínimo del frame debe ser
de 64 bytes de longitud, medido desde el preámbulo hasta al campo CRC. Esta imposición de
tamaño mínimo sirve para asegurar que haya un suficiente tiempo de duración de transmisión
de la trama que permita a las demás estaciones detectar una colisión, si la hay. Esto está
basado en la longitud máxima de cable especificado para una red y la velocidad de
propagación de los bits dentro de ese cable, como veremos con más detalles posteriormente.
Esto implica que la longitud mínima del campo datos (que es de longitud variable) debe ser de
46 bytes. Ambos protocolos establecen una longitud máxima para el campo datos de 1500
bytes. Tanto en DIX como en IEEE 802.3 si el campo Datos no alcanza el mínimo de
46 bytes entonces se lo completa con bytes de relleno.
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 que podríamos decir, con cierto cuidado,
útil. 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. Pero útil a los fines de 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, la transmite, y la estación receptora 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 la capa 2 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, la 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 tiene una
longitud menor a 46 bytes, el protocolo de capa 2 se encarga de poner bytes de relleno hasta
completar 46 bytes.
14
Ethernet
En el protocolo IEEE 802.3 el campo de datos tiene también un máximo de 1500 bytes
y un mínimo de 46, esto último por las misma 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. El funcionamiento de este protocolo lo veremos con
más detalle más adelante.
Campo FCS
Este es el último campo de la trama, tanto en DIX como en IEEE, de 4 bytes de
longitud, el cual también es llamado CRC (chequeo de redundancia cíclica). Es un código cíclico
de detección de error como los que se han estudiado oportunamente en otro capítulo de esta
materia. El transmisor utiliza un polinomio cíclico para calcular el valor del CRC, empleando los
valores de los campos de dirección, tipo o longitud y datos. No usa el contenido del campo
preámbulo. El valor obtenido es puesto en el campo FCS.
El campo FCS 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 FCS 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 ) = 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. El cociente se descarta y se usa
el resto como valor del campo FCS.
Una vez que la trama es recibida por la estación receptora, ésta utiliza el mismo
polinomio generador para calcular CRC. Si el valor calculado coincide con el que está en el
campo FCS de la trama recibida se considera que no tiene errores y por lo tanto la trama es
aceptada. Si el CRC calculado y el que está en la trama no coinciden, 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).
Interframe Gap (Intervalo intertrama)
Una vez que se transmite el último bit de la trama, el transmisor espera un pequeño
tiempo llamado intervalo intertrama o tiempo intertrama, 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. Sirve para que
la electrónica de los circuitos electrónicos de las interfaces tengan tiempo para reestablecerse
y volver a sincronizarse con el comienzo de la próxima trama.
La condición de presencia de señal en un canal Ethernet se indica con el nombre de
portadora. Cuando la interface transmisora termina de transmitir el último bit de la trama el
canal pasa a estar desocupado. En el sistema de 10 Mbps, la pérdida de portadora le indica a
la estación receptora que la trama ha terminado.
Ethernet
15
Reglas para el control de acceso
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:
•
Cuando una señal está siendo transmitida sobre el canal se dice que esta
condición es portadora (carrier).
•
Cuando una estación conectada a la red desea transmitir una trama espera
hasta que el canal esté desocupado, condición denominada ausencia de
portadora.
•
Cuando el canal queda desocupado, la estación espera todavía por un breve
período llamado interframe gap (IFG) y luego transmite la trama.
•
Cuando dos estaciones transmiten al mismo tiempo, ambas detectan la colisión
de las señales, tras lo cual reprograman la retransmisión de sus tramas. Esta
condición se llama detección de colisión (collision detect).
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.
1. Si no hay portadora presente (esto es, el canal está inactivo) y esta ausencia de
portadora se manifiesta por un tiempo igual o mayor al IFG entonces la estación transmite su
trama inmediatamente. Si la estación desea transmitir varias tramas una atrás de otra, debe
esperar un tiempo igual a IFG antes de transmitir la siguiente trama.
Este tiempo de espera Interframe gap o IFG sirve para que la estación receptora se
vuelva a resincronizar. Este tiempo IFG está definido en 96 bits de duración. Esto significa,
para Ethernet de 10 Mbps, un período de 9,6 µs. O bien 960 ns para Ethernet de 100 Mbps, ó
96 ns para Gigabit Ethernet (1000 Mbps).
2. Si hay portadora presente en el canal, esto es, si el canal está ocupado, la
estación interesada en transmitir sigue escuchando el canal hasta que la portadora desaparece
(el canal se desocupa). Ni bien se desocupa el canal, la estación espera un tiempo IFG y
transmite su trama.
3. Si se detecta una colisión durante la transmisión la estación continúa
transmitiendo por un período de 32 bits (jam signal, algo así como señal de interferencia). Si
la colisión es detectada durante la transmisión del preámbulo, la estación completa la
transmisión del mismo y luego sigue con los 32 bits de jam. Al transmitir completamente el
preámbulo más la señal de jam se garantiza que la señal de colisión permanezca sobre el
medio de transmisión un tiempo suficiente como para que sea detectada por todas las
estaciones.
Una vez transmitida la señal de jam las estaciones involucradas en la colisión deben
volver a intentar transmitir 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
Ethernet
Si en el primer intento de retransmisión dos estaciones vuelven a colisionar (si se da el
caso de que ambas eligieron el mismo número aleatorio de espera), el proceso de backoff se
repite, ahora con un conjunto más amplio de tiempos de backoff de los cuales cada estación
elegirá uno en forma aleatoria. De esta manera, al ser este conjunto más amplio, la
probabilidad de que dos estaciones elijan el mismo número es menor. Aún así podrá darse el
caso de que vuelvan a tener el mismo tiempo de espera, con lo cual volverán a colisionar. En
tal caso se repite una vez más el proceso de backoff, ahora con un conjunto de números más
grande aún. Este mecanismo lo volveremos a ver con más detalle más adelante.
4. Una vez que la estación transmisora ha logrado transmitir, sin colisión, 512 bits
de la trama (aparte del 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 (tiempo de ranura) del canal Ethernet. Esto se
aplica a Ethernet de 10 y 100 Mbps. En Gigabit Ethernet es diferente y lo veremos luego con
detalle.
Una vez tomado el canal y terminada de transmitir la trama, la estación borra el
contador de colisiones, el cual fue usado 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.
El slot time de 512 bits mencionado antes, está basado 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. De ese
modo, el tiempo de propagación de ida y vuelta no será mayor al que está establecido en el
slot time de 512 bits.
El slot time está definido a partir del máximo tiempo de propagación, ida y vuelta, de la
señal sobre el medio de propagación. Esto tiene en cuenta dos elementos:
•
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.
•
El máximo tiempo requerido para imponer la colisión, esto incluye el tiempo
requerido para detectar la colisión y la secuencia de jam que se envía a
continuación.
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 el slot time de 512 bits para un sistema de 10 y 100 Mbps. Más adelante
veremos qué ocurre en Gigabit Ethernet.
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, aún 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.
Ethernet
17
No hay que olvidar que el slot time 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.
En el sistema original de 10 Mbps en cable coaxil 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.
Cuando se desarrolló el estándar Fast Ethernet en 1995, el slot time se mantuvo en 512
bits, para no modificar la longitud mínima de trama y mantener sin cambios el protocolo. Sin
embargo, en este sistema el tiempo de bit es 10 veces menor que en 10 Mbps, lo que significa
que “permanece en el cable” durante un tiempo también 10 veces menor3. Por lo tanto, la
señal eléctrica de los 512 bits en su totalidad, para que esté presente en el cable el tiempo
suficiente, deberá hacerlo sobre una longitud de cable diez veces menor que para el caso de
10 Mbps. Esto da como resultado una longitud máxima (o diámetro de red como también se
dice) de 205 metros en Fast Ethernet.
Cuando se desarrolló Gigabit Ethernet, el haber mantenido el slot time en 512 bits
hubiese significado una diámetro de red de apenas unos 20 metros para una operación half
duplex. Realmente es una extensión corta, pero a pesar de ello había buenas razones para
conservar el tamaño mínimo de trama en 512 bits (64 bytes). Para lograr esto, lo que hace
Gigabit Ethernet es aumentar el slot time a 4096 bits (512 bytes) mediante un mecanismo
llamado carrier extension (extensión de portadora) que explicaremos más adelante.
El uso del slot time 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. El slot time se usa
de varias maneras:
3
•
El slot time establece el máximo límite superior para que una estación adquiera
el canal. Una vez que una estación transmitió una trama de 512 bits (trama de
longitud suficiente para cualquier estación conectada a una red de tamaño
máximo de manera que pueda ser escuchada, y suficientemente larga para
“escuchar noticias” de una colisión, incluso si ésta se produce en el extremo más
alejado de la red), ésta se asegura de haber adquirido el canal (tomó posesión
del canal). Si después de un tiempo de 512 bits no hubo colisión, todas las
estaciones restantes estarán sensando portadora y 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.
•
El slot time de 512 bits 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.
•
Una colisión válida sólo puede ocurrir dentro del período de tiempo de 512 bits,
ya que una vez que todas las estaciones ven la señal en el medio (y esto con
seguridad ocurre en un tiempo máximo de 512 bits) postergarán su transmisión
justamente para evitar una colisión. Ya que una colisión válida sólo puede ocurrir
dentro de los primeros 512 bits de la transmisión de la trama, esto establece un
límite superior en la longitud de tramas fragmentadas como consecuencia de
No confundir con la velocidad de propagación, que es la misma.
18
Ethernet
una colisión. Es decir, la interfaz Ethernet siempre descartará cualquier trama de
longitud inferior a 512 bits.
Fijando la longitud mínima de trama en 512 bits (sin incluir el preámbulo) el campo de
datos deberá transmitir al menos 46 bytes. Una trama que tenga 46 bytes en su campo de
datos tendrá 512 bits de longitud total (sin el preámbulo) y por lo tanto no será considerada
como fragmento de una colisión. Los 512 bits incluyen 12 bytes de dirección, más 2 bytes del
campo tipo / longitud, más 46 bytes (como mínimo) del campo datos, más 4 bytes del CRC.
Una vez más, no se considera el preámbulo en este cálculo.
Detección de colisiones y algoritmo de backoff
La detección de colisiones y el algoritmo de backoff es una característica importante del
protocolo MAC de Ethernet. Antes de explicar este mecanismo aclaremos algunos puntos:
•
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
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 una algoritmo de backoff diseñado para ello.
La cantidad de colisiones que se da en una red depende del tráfico ofrecido y del
número de estaciones que hay en dicha red. Por lo tanto puede variar ampliamente desde un
porcentaje pequeño del número de tramas transmitidas hasta un porcentaje grande. La tasa
de colisiones suele ser mayor en aquellas redes que tienen estaciones de alta velocidad de
procesamiento por ejemplo.
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 la parte inicial de la transmisión hecha por una estación, es decir durante
un slot time de 512 bits, también llamado ventana de colisión. Como ya se mencionó, una vez
pasada la ventana de colisión 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. Un segmento de
enlace, tal como par trenzado o fibra óptica, tiene caminos independientes de transmisión y
recepción. Una colisión es detectada en un transceptor de segmento de enlace por la
ocurrencia simultánea de actividad tanto en el transmisor como en el receptor.
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 cuando este nivel DC
supera cierto límite.
Ethernet
19
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
aún 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.
La causa más común de ocurrencia de colisiones tardías es una desadaptación de la
configuración duplex en cada extremo final del segmento de enlace. Por ejemplo, una colisión
tardía puede ocurrir si una estación está configurada como semi duplex y en el otro extremo
de la red hay un switch configurado como duplex total (full duplex). El sistema full duplex no
usa CSMA/CD por lo que el switch envía tramas cada vez que así lo requiera sin escuchar
previamente el canal puesto que no está configurado para ello. Por lo tanto, si la estación half
duplex está transmitiendo, como el switch de este ejemplo no reconoce CSMA/CD enviará
tramas en cualquier momento y colisionarán con las de la estación half duplex, incluso después
de haber pasado la ventana de colisión de 512 bits.
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.
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, la estación transmisora no responde a la señal de presencia de colisión
hasta que no haya terminado de transmitir el preámbulo. Llegado ese instante, envía hacia la
red una 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.
Si la red Ethernet está muy demandada, pueden seguir habiendo colisiones en la
retransmisión a pesar del tiempo de espera aleatorio. El algoritmo de backoff contempla esta
situación y proporciona un mecanismo para ajustar el tiempo de espera. Este mecanismo se
llama truncated binary exponential backoff, cuya traducción aproximada podría ser algoritmo
de espera exponencial binario truncado. Exponencial binario hace referencia a la potencia de 2
usada en el cálculo del tiempo de espera, mientras que truncado se refiere a que este
crecimiento exponencial tiene un límite o tamaño máximo.
Luego de la ocurrencia de una colisión el tiempo de espera para la retransmisión es
fijado en un múltiplo de time slot de 512 bits usado en Ethernet de 10 y 100 Mbps. Es decir
que el tiempo de espera va a ser diferente para cada una de estas dos redes si tenemos en
cuenta que en 10 Mbps un bit tiene una duración de 100 ns mientras que en 100 Mbps o Fast
Ethernet es de 10 ns.
El tiempo de espera se calcula multiplicando el slot time por un número entero elegido
aleatoriamente. El rango de números enteros aleatorios posibles y de los cuales se elige uno,
es determinado por el algoritmo exponencial, y este rango va aumentando a medida que
aumentan los intentos de retransmisión como consecuencia de una nueva colisión en una
20
Ethernet
retransmisión. Por ejemplo, para el primer intento de retransmisión hay 2 números posibles
para elegir aleatoriamente. Si en esta retransmisión vuelve a ocurrir un colisión hay una nueva
oportunidad de retransmisión, ahora con 4 números posibles. Si vuelve a ocurrir una nueva
colisión ahora el rango de números a elegir será 8, etc.
La fórmula que usa el algoritmo de backoff para calcular este rango r es:
0 ≤ r < 2k
(1)
donde k es un entero entre 0 y 10.
r es un número entero, elegido aleatoriamente, que varía entre 0 y 2k –1. Por ejemplo,
si k vale 2, el número r elegido aleatoriamente puede ser 0, 1, 2 ó 3.
k es un entero que indica el número de intento de retransmisión para el cual se está
aplicando el algoritmo. Por ejemplo, para el primer intento de retransmisión k vale 1, para el
segundo intento vale 2, etc. El número máximo que puede adoptar k es 10 (aunque no es ése
el número máximo de retransmisiones).
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 la 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 el slot time, el tiempo de espera posible para este caso
puede ser 0 slot times ó 1 slot time, 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 de 1 slot time ó 512 bits, lo que equivale a 51,2 µs para el caso de una
red Ethernet de 10 Mbps.
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
aletoriamente por cada estación retransmisora. El valor elegido determinará cuántos slot time
debe esperar cada estación antes de retransmitir. Si aún 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.
Luego de diez intentos de retransmisión el valor de k deja de aumentar. En este punto
2k = 1024 por lo que el conjunto de enteros r va desde 0 hasta 1023. Si sigue habiendo
colisiones, el proceso continúa hasta 16 reintentos, ahora manteniendo fijo en 10 el valor de k.
Si luego de 16 reintentos sigue habiendo colisiones finalmente la interfaz Ethernet descarta la
trama, informa la situación a su capa superior de software (capa 3) y continúa con la trama
siguiente, si la tiene.
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.
Ethernet
21
Descargar