Beruflich Dokumente
Kultur Dokumente
A veces, este enlace será un enlace inalámbrico (Wi-Fi) en una cafetería; a veces
es un enlace Ethernet en un edificio de oficinas o universidad; para un sector cada
vez más grande (y afortunado) de la población, es un enlace de fibra óptica
provisto por una compañía de telecomunicaciones o ISP; y muchos otros utilizan
algún tipo de cable de cobre o cable para conectarse. Afortunadamente, existen
muchas estrategias comunes que se utilizan en estos tipos de enlaces
aparentemente dispares para que todos puedan ser confiables y útiles para los
jugadores de alto nivel en la pila de pilotos. Este capítulo examinará esas
estrategias.
La Figura 2.1 ilustra varios tipos de enlaces vistos por un usuario final típico de
Internet de hoy. A la izquierda, vemos una variedad de dispositivos para el usuario
final que van desde teléfonos móviles hasta PDA, computadoras de pleno
rendimiento conectadas por diversos medios a un proveedor de servicios de
Internet. Si bien esos enlaces pueden ser de cualquier tipo mencionado
anteriormente, o de otro tipo, todos se ven iguales en esta imagen, una línea recta
que conecta un dispositivo a un enrutador. Además, hay algunos enlaces que
conectan a los enrutadores dentro del ISP y un enlace que conecta al ISP con el
“resto de Internet”, que consta de muchos otros ISP y los hosts a los que se
conectan. Todos estos enlaces se parecen, no solo porque no somos muy buenos
artistas, sino también porque parte de la función de una arquitectura de red (como
se explica en la Sección 1.3) es proporcionar una abstracción común de algo tan
complejo y diverso como un enlace. La idea es que su computadora portátil o
teléfono inteligente no tiene que preocuparse por el tipo de enlace al que está
conectado, lo único que importa es que tiene un enlace de internet.
Imagen de una red …..
Por lo tanto, una relación señal / ruido típica de 30 dB implicaría que S / N = 1000. Por lo
tanto, tenemos
C = 3000 × log2(1001)
Por ejemplo, la Figura 2.4 representa esquemáticamente la señal codificada NRZ (parte
inferior) que corresponde a la transmisión de una secuencia particular de bits (parte
superior).
El problema con NRZ es que una secuencia de varios 1s consecutivos significa que la
señal permanece alta en el enlace durante un período prolongado de tiempo, de manera
similar, varios intentos consecutivos significan que la señal permanece estancada durante
un largo tiempo. Hay dos problemas fundamentales causados por cadenas largas de 1s o
0s. La primera es que conduce a una situación conocida como desviación de referencia.
Específicamente, el receptor mantiene un promedio de la señal que ha visto hasta ahora y
luego utiliza este promedio para distinguir entre señales bajas y altas. Cuando la señal es
significativamente más baja que este promedio, el receptor concluye que acaba de ver un
0; igualmente, una señal que es significativamente más alta que el promedio se interpreta
como un 1. El problema, por supuesto, es que demasiados 1s o 0s consecutivos hacen
que este promedio cambie, lo que hace más difícil detectar un cambio significativo en la
señal. .
El segundo problema es que las transiciones frecuentes de alta a baja y viceversa son
necesarias para permitir la recuperación del reloj. Intuitivamente, el problema de la
recuperación del reloj es que tanto la codificación como los procesos de decodificación
están controlados por un reloj: cada ciclo de reloj que el remitente transmite un bit y el
receptor se recupera un poco. Los relojes del remitente y del receptor deben estar
sincronizados con precisión para que el receptor recupere los mismos bits que transmite
el remitente. Si el reloj del receptor es incluso un poco más rápido o más lento que el reloj
del remitente, entonces no descodifica correctamente la señal. Podría imaginar enviar el
reloj al receptor a través de un cable separado, pero esto generalmente se evita porque
hace que el costo del cableado sea el doble. Entonces, en cambio, el receptor deriva el
reloj de la señal recibida, el proceso de recuperación del reloj. Cuando la señal cambia,
como en una transición de 1 a 0 o de 0 a 1, entonces el receptor sabe que está en un
límite de ciclo de reloj y puede volver a sincronizarse. Sin embargo, un largo período de
tiempo sin tal transición lleva a la deriva del reloj. Por lo tanto, la recuperación del reloj
depende de tener muchas transiciones en la señal, sin importar qué datos se envíen.
Un enfoque que resuelve este problema, llamado no retorno a cero invertido (NRZI), tiene
al emisor haciendo una transición desde la señal actual para codificar un 1 y permanecer
en la señal actual para codificar un 0. Esto resuelve el problema de 1s consecutivos , pero
obviamente no hace nada por 0s consecutivos. NRZI se ilustra en la Figura 2.5. Una
alternativa, llamada codificación Manchester, hace un trabajo más explícito de fusionar el
reloj con la señal transmitiendo el OR exclusivo de los datos codificados con NRZ y el
reloj. (Piense en el reloj local como una señal interna que alterna de bajo a alto; un par
bajo / alto se considera un ciclo de reloj). La codificación de Manchester también se ilustra
en la Figura 2.5. Observe que la codificación de Manchester da como resultado que 0 se
codifique como una transición de bajo a alto y 1 que se codifique como una transición de
alto a bajo. Debido a que tanto el 0 como el 1 resultan en una transición a la señal, el reloj
puede recuperarse efectivamente en el receptor. (Existe una gran variedad de
codificaciones del Manchester, denominada Manga Diferencial, en la cual un 1 está
codificado con la primera mitad de la señal, igualando la mitad de la señal anterior
opuesta a la última mitad de la señal del bit anterior.)
El problema con el esquema de codificación de Manchester es que duplica la velocidad a
la que se realizan las transiciones de la señal en el enlace, lo que significa que el receptor
tiene la mitad del tiempo para detectar cada pulso de la señal. La tasa que cambia la
señal de llamada del ritmo del enlace. En el caso de la codificación de Manchester, la tasa
de bits es la mitad de la velocidad de transmisión, por lo que la codificación se considera
solo un 50% eficiente. Tenga en cuenta que si el receptor hubiera sido capaz de realizar
una operación de seguimiento con el patrón de datos requerido por la codificación
Manchester en la Figura 2.5, entonces NRZ y NRZI podrían haber sido capaces de
transmitir el doble de bits en el mismo período de tiempo.
Una codificación final que, a su juicio, llamada 4B / 5B, intenta eliminar la ineficiencia de la
codificación de Manchester sin sufrir el problema de tener prolongadas duraciones de
señales de alta calidad. La idea de 4B / 5B es insertar bits adicionales en el flujo de bits
para romper largas secuencias de 0s o 1s. Específicamente, cada 4 bits de datos reales
se codifican en un código de 5 bits que luego se transmite al receptor; De ahí el nombre
4B / 5B. Los códigos de 5 bits se seleccionan de tal manera que cada uno no tiene más
de un 0 inicial y no más de dos 0s finales. Por lo tanto, cuando se envían de nuevo a
atrás, ningún par de códigos de 5 bits da como resultado que se transmitan más de tres
0s consecutivos. Los códigos de 5 bits resultantes se transmiten luego utilizando la
codificación NRZI, lo que explica por qué al código solo le preocupan los 0 consecutivos.
NRZI ya resuelve el problema de los 1s consecutivos. Tenga en cuenta que la codificación
4B / 5B da como resultado una eficiencia del 80%.
La Tabla 2.2 muestra los códigos de 5 bits que corresponden a cada uno de los 16
símbolos de datos posibles de 4 bits. Tenga en cuenta que dado que 5 bits son suficientes
para codificar 32 códigos diferentes, y estamos usando solo 16 de estos para datos, hay
16 códigos restantes que podemos usar para otros fines. De estos, el código 11111 se
usa cuando la línea está inactiva, el código 00000 corresponde a cuando la línea está
muerta y 00100 se interpreta como que significa detención. De los 13 códigos restantes, 7
de ellos no son válidos porque violan la regla de "uno de los primeros 0, dos de los últimos
0", y los otros 6 representan varios símbolos de control. Como veremos más adelante en
el capítulo, algunos protocolos de enmarcar pueden ser utilizados por estos símbolos de
control.
2.3 ENMARCADO
Ahora que hemos visto cómo transmitir una secuencia de bits a través de un enlace punto
a punto (de adaptador a adaptador), consideremos el escenario ilustrado en la Figura 2.6.
Recuerde en el Capítulo 1 que nos estamos enfocando en las redes de conmutación de
paquetes, lo que significa que los bloques de datos (llamados cuadros en este nivel), no
los flujos de bits, se intercambian entre nodos. Es el adaptador de red que permite a los
nodos intercambiar marcos. Cuando el nodo A desea transmitir un marco al nodo B, le
dice a su adaptador que transmita un marco desde la memoria del nodo. Esto da lugar a
una secuencia de bits que se envían a través del enlace. El adaptador en el nodo B luego
recopila la secuencia de bits que llegan al enlace y deposita la trama correspondiente en
la memoria de B. Reconocer exactamente qué conjunto de bits constituye una trama, es
decir, determinar dónde comienza y termina la trama, es el desafío central que enfrenta el
adaptador.
Hay varias formas de abordar el problema del encuadre. Esta sección utiliza varios
protocolos diferentes para ilustrar los diversos puntos en el espacio de diseño. Tenga en
cuenta que, si bien tratamos el encuadre en el contexto de los enlaces punto a punto, el
problema es fundamental y también debe abordarse en redes de acceso múltiple como
Ethernet y anillos de token.
2.3.1 Protocolos orientados a bytes (BISYNC, PPP, DDCMP)
Uno de los enfoques más antiguos para el encuadre, que tiene sus raíces en la conexión
de terminales a mainframes, es ver cada cuadro como una colección de bytes
(caracteres) en lugar de una colección de bits. El enfoque orientado a los chiquillos se
ejemplifica mediante protocolos más antiguos, como la Comunicación Sincrónica Binaria
(BISYNC ) protocolo desarrollado por IBM a fines de la década de 1960, y el Protocolo de
mensajes de comunicación de datos digitales (DDCMP) utilizado en DECNET de Digital
Equipment Corporation. El protocolo punto a punto (PPP) más reciente y más utilizado es
otro ejemplo de este enfoque.
Enfoques basados en Sentinel La Figura 2.7 ilustra el formato de trama del protocolo
BISYNC. Esta figura es la primera de muchas de las que verá en este libro que se utilizan
para ilustrar los formatos de marcos o paquetes, por lo que son necesarias algunas
palabras de explicación. Mostramos un paquete como una secuencia de campos
etiquetados. Sobre cada campo hay un número que indica la longitud de ese campo en
bits. Tenga en cuenta que los paquetes se transmiten a partir del campo más a la
izquierda.
BISYNC usa caracteres especiales conocidos como caracteres centinela para indicar
dónde comienzan y terminan los marcos. El comienzo de un cuadro se denota mediante
el envío de un carácter especial SYN (sincronización). La parte de datos del marco está
contenida entre dos caracteres especiales más: STX (inicio del texto) y ETX (final del
texto). El campo SOH (inicio del encabezado) cumple con el mismo propósito que el
campo STX. El problema con el enfoque centinela, por supuesto, es que el carácter ETX
puede aparecer en la parte de datos del marco. BISYNC supera este problema al
"escapar" del carácter ETX precediéndolo con un carácter DLE (escape de enlace de
datos) cada vez que aparece en el cuerpo de un marco; el carácter DLE también se
escapa (precediéndolo con un DLE adicional) en el cuerpo del marco. (Los
programadores de C pueden notar que esto es análogo a la forma en que una comilla
escapa a una comilla cuando ocurre dentro de una cadena). Este enfoque a menudo se
denomina relleno de caracteres porque se insertan caracteres adicionales en la parte de
datos del marco.
El formato de trama también incluye un campo etiquetado como CRC (verificación de
redundancia cíclica), que se utiliza para detectar errores de transmisión; en la Sección 2.4
se presentan varios algoritmos para la detección de errores. Finalmente, el marco
contiene campos de encabezado adicionales que se utilizan, entre otras cosas, para el
algoritmo de entrega confiable de nivel de enlace. En la Sección 2.5 se dan ejemplos de
estos algoritmos.
El más reciente Protocolo Punto a Punto (PPP), que se usa comúnmente para transportar
paquetes de Protocolo de Internet a través de varios tipos de enlaces punto a punto, es
similar a BISYNCinthatitalsusessentinelsandcharacter stuf fi ng. El formato para un marco
PPP se muestra en la Figura 2.8. El carácter especial de inicio de texto, denotadoelFlagde
el campoFigura2.8, es01111110. Los campos de Dirección y Control usualmente
contienen valores predeterminados y, por lo tanto, no son interesantes. El campo de
protocolo se utiliza para demultiplexar; identifica el protocolo de alto nivel, como IP o IPX
(un protocolo similar a IP desarrollado por Novell). El tamaño de la carga útil de trama se
puede negociar, pero es 1500 bytes por defecto. El campo Checksum tiene una longitud
de 2 (por defecto) o de 4 bytes.
El formato de trama PPP es inusual ya que varios de los tamaños de campo se negocian
en lugar de fijarse. Esta negociación se lleva a cabo mediante un protocolo denominado
Protocolo de control de enlace (LCP). El PPP y el LCP trabajan en tándem: el LCP envía
mensajes de control encapsulados en marcos PPP; estos mensajes se indican mediante
un identificador LCP en el campo del Protocolo PPP, y luego cambia el formato del marco
del PPP en función de la información contenida en esos mensajes de control. LCP
también participa en el establecimiento de un enlace entre dos pares cuando ambos lados
detectan que la comunicación a través del enlace es posible (por ejemplo, cuando cada
receptor óptico detecta una señal entrante de la fibra a la que se conecta).
Una característica interesante del relleno de bits, así como el relleno de caracteres, es
que el tamaño de una trama depende de los datos que se envían en la carga útil de la
trama. De hecho, no es posible hacer que todos los cuadros tengan exactamente el
mismo tamaño, dado que los datos que podrían transportarse en cualquier cuadro son
arbitrarios. (Para convencerse de esto, considere qué sucede si el último byte del cuerpo
de un marco es el carácter ETX). En la siguiente subsección se describe una forma de
marco que garantiza que todos los marcos tengan el mismo tamaño.
La importancia del encuadre es que un solo cuadro de SONET puede contener subtramas
para múltiples canales de menor velocidad. Una segunda característica relacionada es
que cada cuadro tiene una longitud de 125 µs. Esto significa que a velocidades STS-1,
una trama SONET tiene una longitud de 810 bytes, mientras que a velocidades STS-3,
cada trama SONET tiene una longitud de 2430 bytes. Observe la sinergia entre estas dos
características: 3 × 810 = 2430, lo que significa que tres marcos STS-1 se ajustan
exactamente en un solo marco STS-3.
Intuitivamente, puede pensarse que la trama STS-N está formada por N tramas STS-1,
donde los bytes de estas tramas están entrelazados; es decir, se transmite un byte desde
la primera trama, luego se transmite un byte desde la segunda trama, y así
sucesivamente. La razón para intercalar los bytes de cada trama STS-N es asegurar que
los bytes en cada trama STS-1 se estimulen de manera uniforme; es decir, los bytes
aparecen en el receptor a una velocidad de 51 Mbps, en lugar de agruparse durante un 1 /
Nth particular del intervalo de 125 µs.
Aunque es preciso ver una señal STS-N como si se utilizara para multiplexar N tramas
STS-1, la carga útil de estas tramas STS-1 se puede vincular entre sí para formar una
carga útil mayor STS-N; dicho enlace se indica como STS-Nc (para concatenado). Uno de
los campos en la sobrecarga se utiliza para este propósito. La Figura 2.12 muestra
esquemáticamente la concatenación en el caso de tres tramas STS-1 que se concatenan
en una sola trama STS-3c. La importancia de que un enlace de SONET se designe como
STS-3c en lugar de STS-3 es que, en el primer caso, el usuario del enlace puede verlo
como un solo 155.25Mbpspipe, mientras que un STS-3 debería realmente ver en pantalla
los enlaces de 51.84-Mbps que ocurren compartir una fi bra.
Finalmente, la descripción anterior de SONET es demasiado simplista, ya que se supone
que la carga que se carga para cada marco se encuentra completamente dentro del
marco. (¿Por qué no sería así?) De hecho, deberíamos ver la trama STS-1 que acabamos
de describir como simplemente un marcador de posición para la trama, donde la carga útil
real puede flotar a través de los límites de la trama.
Esta situación se ilustra en la Figura 2.13. Aquí vemos que la carga útil STS-1 fluye a
través de dos tramas STS-1 y que la carga útil se desplaza un cierto número de bytes a la
derecha y, por lo tanto, se enrolla alrededor. Uno de los campos en la sobrecarga del
marco apunta al comienzo de la carga útil. El valor de esta capacidad es que simplifica la
tarea de sincronizar los relojes utilizados en las redes de los operadores, que es algo por
lo que los operadores pasan mucho tiempo preocupándose.
Una de las técnicas más comunes para detectar errores de transmisión es una técnica
conocida como verificación de redundancia cíclica (CRC). Se usa en casi todos los
protocolos de nivel de enlace analizados en la sección anterior (por ejemplo, HDLC,
DDCMP), así como en los protocolos CSMA e inalámbricos descritos más adelante en
este capítulo. La sección 2.4.3 describe el algoritmo básico de CRC. Antes de discutir ese
enfoque, consideramos dos esquemas más simples: paridad bidimensional y sumas de
comprobación. El primero es utilizado por el protocolo BISYNC cuando está transmitiendo
caracteres ASCII (CRC se usa como el código de detección de errores cuando BISYNC
se usa para transmitir EBCDIC3), y el último es usado por varios protocolos de Internet.
La idea básica detrás de cualquier esquema de detección de errores es agregar
información redundante a una trama que se pueda usar para determinar si se han
introducido errores. En el extremo, podríamos transmitir una copia completa de las copias
completas de los datos. Si las dos copias son idénticas en el receptor, es probable que
ambas sean correctas. Si difieren, entonces se introdujo un error en uno (o ambos) de
ellos, y deben ser descartados. Este es un esquema de detección de errores bastante
pobre por dos razones. Primero, envía n bits redundantes para un mensaje de n bits.
Segundo, muchos errores no se detectarán: cualquier error que dañe las mismas
posiciones de bit en la primera y segunda copia del mensaje. En general, el objetivo de
los códigos de detección de errores es proporcionar una alta probabilidad de detectar
errores combinados con un número relativamente bajo de bits redundantes.
Afortunadamente, podemos hacerlo mucho mejor que este simple esquema. En general,
podemos proporcionar una capacidad de detección de errores bastante fuerte al enviar
solo k bits redundantes para un mensaje de n bits, donde k ≪ n. En una Ethernet, por
ejemplo, una trama que lleva hasta 12,000 bits (1500 bytes) de datos requiere solo un
código CRC de 32 bits, o como se expresa comúnmente, utiliza CRC-32. Dicho código
detectará la gran mayoría de errores, como veremos a continuación.
Decimos que los bits adicionales que enviamos son redundantes porque no agregan
información nueva al mensaje. En su lugar, se derivan directamente del mensaje original
utilizando algún algoritmo bien de fi nido. Tanto el remitente como el receptor saben
exactamente qué es ese algoritmo. El remitente aplica el algoritmo para que se genere
tanto el bit como los bits. Transmite tanto el mensaje como esos pocos bits adicionales.
Cuando el receptor aplica el mismo algoritmo al mensaje recibido, debería (en ausencia
de errores) dar con el mismo resultado que el remitente. Compara el resultado con el
enviado por el remitente. Si coinciden, se puede concluir (con alta probabilidad) que no se
introdujeron errores en el mensaje durante la transmisión. Si no coinciden, puede estar
seguro de que el mensaje o los bits redundantes se corrompieron, y debe tomar las
medidas adecuadas, es decir, descartar el mensaje o corregirlo si es posible.
Una nota sobre la terminología para estos bits extra. En general, se les conoce como
códigos de detección de errores. En casos especí fi cos, cuando el algoritmo para crear el
código se basa en una adición, pueden llamarse sumas de control. Veremos que la suma
de comprobación de Internet se llama adecuadamente: es una comprobación de errores
que utiliza un algoritmo de suma. Desafortunadamente, la palabra suma de comprobación
se usa de manera imprecisa para significar cualquier forma de código de detección de
errores, incluidos los CRC. Esto puede ser confuso, por lo que le recomendamos que
utilice la palabra checksum solo para aplicar a los códigos que realmente usan la suma y
que use el código de detección de errores para referirse a la clase general de códigos que
se describe en esta sección.
2.4.1 Paridad bidimensional
Paridad bidimensional es exactamente lo que sugiere su nombre. Se basa en una paridad
“simple” (unidimensional), que generalmente implica agregar un bit adicional a un código
de 7 bits para equilibrar el número de 1s en el byte. Por ejemplo, paridad impar establece
el octavo bit en 1 si es necesario para dar un número impar de 1s en el byte, e incluso
paridad establece el octavo bit en 1 si es necesario para dar un número par de 1s en el
byte. La paridad bidimensional realiza un cálculo similar para cada posición de bit en cada
uno de los bytes contenidos en el marco. Esto da como resultado un byte de paridad
adicional para toda la trama, además de un bit de paridad para cada byte. La Figura 2.14
ilustra cómo funciona la paridad par bidimensional para un marco de ejemplo que contiene
6 bytes de datos. Observe que el tercer bit del byte de paridad es 1, ya que hay un
número impar de 1s en el tercer bit a través de los 6 bytes en el marco.
Se puede demostrar que la paridad bidimensional captura todos los errores de 1, 2 y 3
bits, y la mayoría de los errores de 4 bits. En este caso, hemos agregado 14 bits de
información redundante a un mensaje de 42 bits y, sin embargo, tenemos una protección
más fuerte contra los errores comunes que el "código de repetición" descrito
anteriormente.
2.4.2 Algoritmo de suma de comprobación de Internet
Un segundo enfoque para la detección de errores se ejemplifica en la suma de control de
Internet. Aunque no se usa a nivel de enlace, proporciona el mismo tipo de funcionalidad
que los CRC y la paridad, por lo que lo discutimos aquí. Veremos ejemplos de su uso en
las Secciones 3.2, 5.1 y 5.2.
La idea detrás de la suma de comprobación de Internet es muy simple: sumas todas las
palabras que se transmiten y luego transmites el resultado de esa suma. El resultado es la
suma de comprobación. El receptor realiza el mismo cálculo sobre los datos recibidos y
en comparación con otros recibidos. Si alguno de los datos transmitidos, incluida la suma
de comprobación, está dañado, los resultados no coincidirán, por lo que el receptor sabe
que se produjo un error.
Usted puede anunciar muchas diferentes variaciones en la base de la planta de control. El
esquema exacto utilizado por los protocolos de Internet funciona de la siguiente manera.
Considere los datos que se están sumando como una secuencia de enteros de 16 bits.
Súmelos juntos utilizando aritmética de complemento de 16 bits (se explica a
continuación) y luego tome los complementos del resultado. Ese número de 16 bits es la
suma de comprobación.
En la aritmética del complemento, un entero negativo (−x) se representa como el
complemento de x; Es decir, cada bit de x está invertido.
Al agregar números en la aritmética del complemento, se debe agregar al resultado un
resultado del bit más significativo. Considere, por ejemplo, la suma de −5 y −3 en la
aritmética de un complemento en enteros de 4 bits: +5 es 0101, por lo que −5 es 1010; +3
es 0011, entonces −3 es 1100. Si agregamos 1010 y 1100, ignorando el acarreo,
obtenemos 0110. En la aritmética del complemento, el hecho de que esta operación se
produzca desde un principio demuestra que el canto del bitácora nos permite incrementar
el resultado, dando 0111, que es la representación del complemento de - 8 (obtenido
invirtiendo los bits en 1000), como es de esperar.
La siguiente rutina proporciona una implementación directa del algoritmo de suma de
comprobación de Internet. El argumento de conteo da la longitud de buf medida en
unidades de 16 bits. La rutina supone que buf ya se ha rellenado con 0s a un límite de 16
bits.
Líneas de código …
Este código garantiza que el cálculo utiliza los complementos aritméticos en lugar del
complemento de dos que se utiliza en la mayoría de las máquinas. Note la sentencia if
dentro del bucle while. Si hay un acarreo en los 16 bits superiores de suma, entonces
incrementamos la suma como en el ejemplo anterior.
Compared to our repetition code, this algorithm scores well for using a small number of
redundant bits—only 16 for a message of any length— but it does not score extremely well
for strength of error detection. For example, a pair of single-bit errors, one of which
increments a word and one of which decrements another word by the same amount, will
go undetected. The reason for using an algorithm like this in spite of its relatively weak
protection against errors (compared to a CRC, for example) is simple: This algorithm is
much easier to implement in software. Experience in the ARPANET suggested that a
checksum of this form was adequate. One reason it is adequate is that this checksum is
the last line of defense in an end-to-end protocol; the majority of errors are picked up by
stronger error detection algorithms, such as CRCs, at the link level.
Cuadro
Cálculos de probabilidad simple
Cuando se trata de errores de red y otros eventos improbables (esperamos), a menudo
tenemos uso para estimaciones de probabilidad simples en el reverso del sobre. Una
aproximación útil aquí es que si dos eventos independientes tienen pequeñas
probabilidades p y q, entonces la probabilidad de cualquiera de los eventos es p + q; la
respuesta exacta es 1 - (1 - p) (1 - q) = p + q - pq. Para p = q = .01, esta estimación es
.02, mientras que el valor exacto es .0199. Para una aplicación simple de esto, suponga
que la tasa de error por bit en un enlace es 1 en 107. Ahora supongamos que estamos
interesados en estimar la probabilidad de que al menos un bit en un paquete de 10,000
bits esté en error. Usando la aproximación anterior repetidamente sobre todos los bits,
podemos decir que estamos interesados en la probabilidad de error del primer bit, o del
segundo bit, o del tercero, etc. Asumiendo que los bits son muy dependientes (que no
son), podemos estimar que la probabilidad de al menos un error en un paquete de 10,000
bits (104 bits) es 104 × 10−7 = 10−3. La respuesta exacta, calculada como 1 - P (sin
errores), sería 1 - (1 - 10−7) 10,000 = .00099950. Para una aplicación un poco más
compleja, calculamos la probabilidad de exactamente dos errores en dicho paquete; esta
es la probabilidad de un error que pasaría por alto una suma de comprobación de 1 bit de
paridad. Si consideramos dos bits particulares en el paquete, digamos bit i y bit j, la
probabilidad de que esos bits exactos estén en error es 10−7 × 10−7. Ahora, el número
total de pares de bits posibles en el paquete es 104 2 = 104 × (104 - 1) / 2 ≈ 5 ×
107. Así que nuevamente, utilizando la aproximación de agregar repetidamente las
probabilidades de muchos eventos raros (en este caso, de cualquier posible par de bits
con error), nuestra probabilidad total de al menos dos bits con error es 5 × 107 × 10−14 =
5 × 10−7.
Líneas de código
FrameOrderandFlowControl
Theslidingwindowprotocolisperhapsthebstostalgorithmincomputer networking. Sin
embargo, lo que se confunde fácilmente con el algoritmo es que se puede utilizar para
cumplir tres funciones diferentes. El primer rol es el que nos hemos concentrado en esta
sección: entregar de manera confiable los marcos a través de un enlace de enlace fijo.
(En general, el algoritmo puede ser usado para enviar mensajes a través de una red no
confiable.) Esta es la función central del algoritmo.
La segunda función que puede cumplir el algoritmo de ventana deslizante es preservar el
orden en que se transmiten las tramas. Esto es fácil de hacer en el receptor, ya que cada
cuadro tiene un número de secuencia, el receptor solo se asegura de que no pase un
cuadro al siguiente protocolo de nivel superior hasta que ya haya pasado todos los
cuadros con una secuencia más pequeña. número. Es decir, los buffers del receptor (es
decir, no pasan) tramas fuera de orden. La versión del algoritmo de ventana deslizante
que se describe en esta sección conserva el orden de los cuadros, aunque podemos
imaginar una variación en la cual el receptor pasa los cuadros al siguiente protocolo sin
esperar a que se entreguen todos los cuadros anteriores. Una pregunta que deberíamos
hacernos es si realmente necesitamos el protocolo de ventana deslizante para mantener
los marcos en orden, o si, en cambio, esta es una funcionalidad innecesaria en el nivel del
enlace. Desafortunadamente, todavía no hemos visto suficiente de la arquitectura de red
para responder a esta pregunta; En primer lugar, debemos comprender cómo se conectan
los enlaces punto a punto mediante una secuencia de enlaces de extremo a extremo.
El tercer papel que juega a veces el algoritmo de ventana deslizante es admitir el control
de fl ujo, un mecanismo de retroalimentación mediante el cual el receptor puede
estrangular al remitente. Dicho mecanismo se utiliza para evitar que el remitente supere al
receptor, es decir, que transmita más datos de los que el receptor puede procesar. Esto
generalmente se logra aumentando el protocolo de la ventana deslizante para que el
receptor no solo reconozca las tramas que ha recibido sino que también informe al
remitente de cuántas tramas tiene espacio para recibir. La cantidad de cuadros que el
receptor puede recibir corresponde a la cantidad de espacio disponible en el búfer. Al
igual que en el caso de la entrega ordenada, debemos asegurarnos de que el control de fl
ujo sea necesario en el nivel del enlace antes de incorporarlo en el protocolo de ventana
deslizante
2.5.3 Canales lógicos concurrentes
El protocolo de enlace de datos utilizado en ARPANET proporciona una alternativa
interesante al protocolo de ventana deslizante, ya que es capaz de mantener la tubería
llena mientras se usa el algoritmo simple de parada y espera. Una consecuencia
importante de este enfoque es que las tramas enviadas a través de un enlace dado no se
mantienen en ningún orden en particular. El protocolo tampoco implica nada sobre el
control de fl ujo.
La idea que subyace al protocolo ARPANET, a la que nos referimos como canales lógicos
concurrentes, es multiplexar varios canales lógicos en un enlace punto a punto único y
unir el circuito de parada y en espera de cada canal lógico. No se mantiene ninguna
relación entre las tramas enviadas en ninguno de los canales lógicos, sin embargo, debido
a que una trama diferente puede sobresalir en cada uno de los varios canales lógicos, el
remitente puede mantener el enlace completo.
Más precisamente, el remitente conserva 3 bits de estado para cada canal: un valor
booleano, que indica si el canal es o no muy activo, el número de secuencia de 1 bit para
usar la próxima vez que se envíe una trama en este canal lógico; y el siguiente número de
secuencia que se espera en un cuadro que llega a este canal. Cuando el nodo tiene un
marco para enviar, utiliza el canal inactivo más bajo y, de lo contrario, se comporta como
detener y esperar.
En la práctica, ARPANET admitió 8 canales lógicos sobre cada enlace de tierra y 16 sobre
cada enlace de satélite. En el caso de enlace a tierra, el encabezado de cada trama
incluye un número de canal de 3 bits y un número de secuencia de 1 bit, para un total de
4 bits. Esta es exactamente la cantidad de bits que requiere el protocolo de ventana
deslizante para admitir hasta 8 cuadros pendientes en el enlace cuando RWS = SWS.
2.6 ETHERNET Y REDES DE ACCESO MÚLTIPLES (802.3)
Desarrollado a mediados de la década de 1970 por investigadores del Centro de
Investigación Palo Alto de Xerox (PARC), el Ethernet finalmente se convirtió en la
tecnología de red de área local dominante, surgiendo de un paquete de tecnologías de la
competencia. Hoy en día, compite principalmente con redes inalámbricas 802.11, pero
sigue siendo extremadamente popular en redes de campus y centros de datos. El nombre
más general para la tecnología detrás de Ethernet es Carrier Sense, Acceso múltiple con
Collision Detect (CSMA / CD).
Como lo indica el nombre de CSMA, la Ethernet es una red de acceso múltiple, lo que
significa que el conjunto de datos de los trámites del mensaje y lo que se recibe es un
enlace de enlace compartido. Por lo tanto, puede pensar que un Ethernet es como un bus
que tiene varias estaciones conectadas. El "sentido de la portadora" en CSMA / CD
significa que todos los nodos pueden distinguir entre un enlace inactivo y un enlace
ocupado, y "detección de colisión" significa que un nodo escucha mientras transmite y,
por lo tanto, puede detectar cuando una trama que está transmitiendo ha interferido (
colisionado) con una trama transmitida por otro nodo.
Ethernet tiene sus raíces en una red de radio de paquetes temprana, llamada Aloha,
desarrollada en la Universidad de Hawai para apoyar la comunicación por computadora
en las islas hawaianas. Al igual que la red Aloha, el problema fundamental al que se
enfrenta Ethernet es cómo mediar el acceso a un medio compartido de manera imparcial
y definida (en Alha, el tema es la atmósfera, mientras que en Ethernet el medio es un
cable coaxial). La idea central tanto en Aloha como en Ethernet es un algoritmo que
controla cuándo puede transmitir cada nodo.
Curiosamente, los enlaces modernos de Ethernet ahora son en gran parte punto a punto;
es decir, conectan un host a un conmutador Ethernet o interconectan conmutadores. Por
lo tanto, las técnicas de "acceso múltiple" no se usan mucho en los medios de
comunicación de hoy. En el mismo momento, la red inalámbrica se ha vuelto
extremadamente popular, por lo que las tecnologías de acceso múltiple que comenzaron
en Aloha se utilizan nuevamente en redes inalámbricas como las redes 802.11 (Wi-Fi).
Estas redes serán discutidas en la Sección 2.7.
Discutiremos los switches Ethernet en el próximo capítulo. Por ahora, nos centraremos en
cómo funciona un solo enlace Ethernet. Y a pesar de que Ethernet de acceso múltiple se
está convirtiendo en una curiosidad histórica, los principios de las redes de acceso
múltiple siguen siendo lo suficientemente importantes como para justificar una discusión
adicional, que se proporciona a continuación.
Digital Equipment Corporation e Intel Corporation se unieron a Xerox para definir un
estándar de Ethernet de 10 Mbps en 1978. Este estándar luego formó la base para el
estándar IEEE 802.3, que además de fi ne una colección mucho más amplia de medios
físicos sobre los que puede operar un Ethernet, incluyendo 100 Versiones de Mbps, 1-
Gbps y 10-Gbps.
2.6.1 Propiedades físicas
Los segmentos de Ethernet se implementaron originalmente utilizando un cable coaxial de
una longitud de hasta 500 m. (Las Ethernets modernas utilizan pares de cobre trenzado,
generalmente un tipo particular conocido como "Categoría 5", o fibras ópticas, y en
algunos casos pueden ser mucho más largos que 500 m). Este cable era similar al tipo
usado para la televisión por cable. Hosts conectados a un segmento de Ethernet al
acceder a él. Un transceptor, un pequeño dispositivo conectado directamente a la toma,
detectó cuando la línea estaba inactiva e impulsó la señal cuando el host estaba
transmitiendo. También recibió señales entrantes. El transceptor, a su vez, se conectó a
un adaptador Ethernet, que estaba conectado al host. Esta con fi guración se muestra en
la figura 2.22.
Los repetidores pueden unir varios segmentos de Ethernet. Un repetidor es un dispositivo
que envía señales digitales, como un ampli fi cador de señales analógicas. Los
repetidores comprenden solo bits, no marcos, sin embargo, el nombre de cuatro
repetidores podría estar ubicado entre cualquier par de hosts, lo que significa que una
Ethernet clásica tenía un alcance total de solo 2500 m. Por ejemplo, usar solo dos
repetidores entre cualquier par de hosts admite una configuración similar a la ilustrada en
la Figura 2.23, es decir, un segmento que se extiende por la columna vertebral de un
edificio con un segmento en cada piso.
Es un abanico de archivos de gran tamaño que se repite en el repetidor, a veces se llama
Hub, como se ilustra en la Figura 2.24. Un concentrador simplemente repite lo que
escucha en un puerto y en todos sus otros puertos.
Cualquier señal colocada en Ethernet por un host se transmite a través de toda la red; es
decir, la señal se propaga en ambas direcciones, y los repetidores y los concentradores
envían la señal a todos los segmentos salientes. Los terminadores adjuntos al final de
cada segmento absorben la señal y evitan que rebote e interfiera con señales de trazas.
Las especi fi caciones originales de Ethernet utilizaron el esquema de codificación de
Manchester descrito en la Sección 2.2, mientras que la codificación 4B / 5B o el esquema
8B / 10B similar se usa hoy en Ethernets de mayor velocidad.
Imagen
Es importante comprender que si una Ethernet dada abarca un solo segmento, una
secuencia lineal de segmentos conectados por repetidores o múltiples segmentos
conectados en una configuración en estrella por un concentrador, los datos transmitidos
por cualquier host en ese Ethernet llegan a todos los demás hosts . Éstas son las buenas
noticias. La mala noticia es que todos estos hosts están compitiendo por acceder al
mismo enlace y, como consecuencia, se dice que están en el mismo dominio de colisión.
La parte de acceso múltiple de Ethernet tiene que ver con tratar con la competencia por el
enlace que surge en un dominio de colisión.
2.6.2 Protocolo de acceso
Ahora prestamos atención al algoritmo que controla el acceso a un enlace Ethernet
compartido. Este algoritmo se denomina comúnmente control de acceso de medios (MAC)
de Ethernet. Por lo general, se implementa en el hardware en el adaptador de red. No se
describirá el error de guerra, sino que se enfoca en el algoritmo que implementa. Primero,
sin embargo, describimos el formato de trama y las direcciones de Ethernet.
FrameFormat Cada trama de Ethernet se de fi ne mediante el formato dado en la Figura
2.25.6 El preámbulo de 64 bits permite que el receptor se sincronice con la señal; Es una
secuencia de alternar 0s y 1s. Tanto los hosts de origen como los de destino se identifican
con una dirección de 48 bits. El campo de tipo de paquete sirve como clave de
demultiplexación; identifica a cuál de los posiblemente muchos protocolos de nivel
superior se debe entregar este marco. Cada cuadro contiene hasta 1500 bytes de datos.
Como mínimo, un marco debe contener al menos 46 bytes de datos, incluso si esto
significa que el host debe rellenar el marco antes de transmitirlo. El motivo de este tamaño
de cuadro mínimo es que el cuadro debe ser lo suficientemente largo para detectar una
colisión; Discutimos esto más abajo. Finalmente, cada cuadro incluye un CRC de 32 bits.
Al igual que el protocolo HDLC descrito en la Sección 2.3.2, Ethernet es un protocolo de
trama orientado a bits. Tenga en cuenta que, desde la perspectiva del host, una trama
Ethernet tiene un encabezado de 14 bytes: dos direcciones de 6 bytes y un campo de tipo
de 2 bytes. El adaptador de envío adjunta el preámbulo y el CRC antes de transmitir, y el
adaptador de recepción los elimina.
Direcciones Cada host en una Ethernet, de hecho, cada host Ethernet en el mundo, tiene
una dirección Ethernet única. Técnicamente, la dirección pertenece al adaptador, no al
host; por lo general se quema en ROM. Las direcciones de Ethernet se imprimen
normalmente en una forma que los humanos pueden leer como una secuencia de seis
números separados por dos puntos. Cada número corresponde a 1 byte de la dirección de
6 bytes y está dado por un par de dígitos hexadecimales, uno para cada uno de los
nibbles de 4 bits en el byte; 0s iniciales se caen. Por ejemplo, 8: 0: 2b: e4: b1: 2 es la
representación legible por humanos de la dirección Ethernet
00001000 00000000 00101011 11100100 10110001 00000010
Para garantizar que cada adaptador obtenga una dirección única, a cada fabricante de
dispositivos Ethernet se le asigna un prefijo diferente que debe incluirse en la dirección de
cada adaptador que construyen. Por ejemplo, a Advanced Micro Devices se le ha
asignado el prefijo de 24 bits x080020 (o 8: 0: 20). Un fabricante determinado se asegura
de que la dirección que produce sea única.
Cada trama transmitida en una Ethernet es recibida por cada adaptador conectado a esa
Ethernet. Cada adaptador reconoce los marcos dirigidos a su dirección y pasa solo esos
marcos al host. (También se puede programar un adaptador para que se ejecute en modo
promiscuo, en cuyo caso entrega todas las tramas recibidas al host, pero este no es el
modo normal). Además de estas direcciones de unidifusión, se trata una dirección
Ethernet que consta de todos los 1s como una dirección de difusión; todos los
adaptadores pasan tramas dirigidas a la dirección de transmisión hasta el host. De
manera similar, una dirección que tiene el primer bit establecido en 1 pero no es la
dirección de difusión se llama una dirección de multidifusión. Un host determinado puede
programar su adaptador para aceptar algún conjunto de direcciones de multidifusión. Las
direcciones de multidifusión se utilizan para enviar mensajes a algún subconjunto de los
hosts en una Ethernet (por ejemplo, todos los servidores de archivos). Para resumir, un
adaptador Ethernet recibe todos los marcos y acepta
n Marcos dirigidos a su propia dirección.
n Cuadros dirigidos a la dirección de transmisión.
n Marcos dirigidos a una dirección de multidifusión, si se le ha indicado que escuche esa
dirección
n Todos los cuadros, si se ha colocado en modo promiscuo.
Pasa al host solo los frames que acepta.
TransmitterAlgorithm Como acabamos de ver, el lado del receptor del protocolo Ethernet
es simple; Las inteligencia reales se implementan en el lado del remitente. El algoritmo del
transmisor se define de la siguiente manera.
Cuando el adaptador tiene un marco para enviar y la línea está inactiva, transmite el
marco inmediatamente; No hay negociación con los otros adaptadores. El límite superior
de 1500 bytes en el mensaje significa que el adaptador puede ocupar la línea solo por un
tiempo fijo.
Cuando un adaptador tiene una trama para enviar y la línea está ocupada, espera a que
la línea pase a estar inactiva y luego la transmite inmediatamente.7 Se dice que Ethernet
es un protocolo persistente 1 porque un adaptador con una trama para enviar transmite
con probabilidad 1 cada vez que una línea ocupada queda inactiva. En general, un
algoritmo p-persistente transmite con probabilidad 0 ≤ p ≤ 1 después de que una línea
esté inactiva y difiere con probabilidad q = 1 - p. El razonamiento detrás de la elección de
una p <1 es que puede haber varios adaptadores esperando a que la línea ocupada
quede inactiva, y no queremos que todos empiecen a transmitir al mismo tiempo. Si cada
adaptador transmite inmediatamente con una probabilidad de, digamos, un 33%, entonces
hasta tres adaptadores pueden estar esperando para transmitir y es probable que solo
uno comience a transmitir cuando la línea esté inactiva. A pesar de este razonamiento, un
adaptador de Ethernet siempre transmite de forma inmediata y deliberadamente que la
red se ha convertido en algo muy bueno y ha sido muy eficaz al hacerlo.
Para completar la historia sobre los protocolos p-persistentes para el caso en que p <1,
puede preguntarse cuánto tiempo tiene que esperar un remitente que pierde la moneda
(es decir, decide diferir) antes de que pueda transmitir. La respuesta para la red Aloha,
que originalmente desarrolló este estilo de protocolo, fue dividir el tiempo en intervalos
discretos, con cada intervalo correspondiente a la cantidad de tiempo que lleva transmitir
un fotograma completo. Cada vez que un nodo tiene una trama para enviar y detecta una
ranura vacía (inactiva), transmite con probabilidad p y difiere hasta la siguiente ranura con
probabilidad q = 1 - p. Si la siguiente ranura también está vacía, el nodo nuevamente
decide transmitir o diferir, con probabilidades p y q, respectivamente. Si la siguiente
ranura no está vacía, es decir, alguna otra estación ha decidido transmitir, entonces el
nodo simplemente espera la próxima ranura inactiva y el algoritmo se repite.
Volviendo a nuestro análisis de Ethernet, porque no hay control centralizado, es posible
que dos (o más) adaptadores comiencen a transmitir al mismo tiempo, ya sea porque
ambos encontraron que la línea estaba inactiva o porque ambos habían estado esperando
a un ocupado línea para estar inactivo. Cuando esto sucede, dos (o más) cuadros se
reparten en la red. Cada remitente, debido a que la última guía de detección de colisión,
determina que dicha colisión está en curso, se configura en un lugar en el que se
encuentra. Por lo tanto, un transmisor enviará mínimamente 96 bits en el caso de una
colisión: preámbulo de 64 bits más una secuencia de bloqueo de 32 bits.
Una forma en que un adaptador enviará solo 96 bits, lo que a veces se denomina trama
runt, es si los dos hosts están cerca uno del otro. Si los dos hosts estuvieran más
separados, hubieran tenido que transmitir más tiempo, y así enviar más bits, antes de
detectar la colisión. De hecho, el caso más desfavorable ocurre cuando se trata de dos
partes opuestas a los límites de Internet. Para estar seguro de que la trama que acaba de
enviar no chocó con otra trama, es posible que el transmisor deba enviar hasta 512 bits.
No por casualidad, cada trama de Ethernet debe tener una longitud de al menos 512 bits
(64 bytes): 14 bytes de encabezado más 46 bytes de datos más 4 bytes de CRC.
¿Por qué 512 bits? La respuesta está relacionada con otra pregunta que podría hacer
acerca de un Ethernet: ¿Por qué su longitud se limita a solo 2500 m? ¿Por qué no 10 o
1000 km? La respuesta a ambas preguntas tiene que ver con el hecho de que cuanto más
separados están dos nodos, más tarda en llegar una trama a la otra y la red es vulnerable
a una colisión durante este tiempo.
La Figura 2.26 ilustra el peor escenario, donde los hosts A y B se encuentran en los
extremos opuestos de la red. Supongamos que el host A comienza a transmitir una trama
en el tiempo t, como se muestra en (a). Toma una latencia de enlace (denotemos la
latencia como d) para que la trama alcance el host B. Por lo tanto, el primer bit de la trama
de A llega a B en el tiempo t + d, como se muestra en (b). Supongamos que un instante
antes de que llegue el marco del host A (es decir, B todavía ve una línea inactiva), el host
B comienza a transmitir su propio marco. El marco de B colisionará inmediatamente con el
marco de A, y esta colisión será detectada por el host B (c). El host B enviará la secuencia
de bloqueo de 32 bits, como se describe anteriormente. (El marco de B será un tramo).
Desafortunadamente, el host A no sabrá que la colisión ocurrió hasta que el marco de B lo
alcanza, lo que ocurrirá una latencia de enlace más tarde, en el tiempo t + 2 × d, como se
muestra en (d). El host A debe continuar transmitiendo hasta este momento para detectar
la colisión. En otras palabras, el host A debe transmitir 2 × d para asegurarse de que
detecta todas las posibles colisiones. Teniendo en cuenta que una Ethernet con máxima
configuración tiene una longitud de 2500 m, y que puede haber hasta cuatro repetidores
entre cualquiera de los dos hosts, se ha determinado que el retardo de ida y vuelta es de
51,2 µs, que en una Ethernet de 10 Mbps corresponde a 512 bits. La otra forma de ver
esta situación es que necesitamos limitar la latencia máxima de Ethernet a un valor
bastante pequeño (por ejemplo, 51.2 µs) para que funcione el algoritmo de acceso; Por lo
tanto, la longitud máxima de un Ethernet debe ser algo del orden de 2500 m.
Una vez que un adaptador detectó una colisión y detuvo su transmisión, espera que se
acumule una cantidad máxima de tiempo y vuelva a intentarlo. Cada vez que se transmite,
se produce un error, y el adaptador puede volver a montar una vez más para volver a
intentarlo. Esta estrategia de duplicar el intervalo de retardo entre cada intento de
retransmisión es una técnica general conocida como retroceso exponencial. Más
precisamente, el adaptador retrasa primero 0 o 51.2 µs, seleccionados al azar. Si este
esfuerzo falla, espera 0, 51.2, 102.4 o 153.6 µs (seleccionado al azar) antes de volver a
intentarlo; esto es k × 51.2 para k = 0 ... 3. Después de la tercera colisión, espera k × 51.2
para k = 0 ... 23 - 1, nuevamente seleccionado al azar. En general, el algoritmo selecciona
aleatoriamente una k entre 0 y 2n - 1 y espera k × 51.2 µs, donde n es el número de
colisiones experimentadas hasta el momento. El adaptador se da por vencido después de
un número determinado de intentos e informa de un error de transmisión al host. Los
adaptadores generalmente reintentan hasta 16 veces, aunque el algoritmo de retroceso
limita n en la fórmula anterior en 10.
2.6.3 Experiencia con Ethernet
Debido a que Ethernets ha existido durante tantos años y es tan popular, tenemos mucha
experiencia en su uso. Una de las observaciones más importantes que las personas han
hecho acerca de Ethernets de acceso múltiple es que funcionan mejor en condiciones de
poca carga. Esto se debe a que bajo cargas pesadas (por lo general, una utilización de
más del 30% se considera pesada en una Ethernet) una gran parte de la capacidad de la
red se desperdicia por colisiones.
Para mitigar estas preocupaciones, las redes de acceso múltiple se utilizaron
normalmente de una manera mucho más conservadora de lo que permite el estándar. Por
ejemplo, la mayoría de los Ethernets tenían menos de 200 hosts conectados, lo que es
mucho menos que el máximo de 1024. De manera similar, la mayoría de los Ethernets
eran mucho más cortos que los 2500m, con una respuesta aproximada al retardo del
cierre de 5 µsthan51.2 µs. Otro factor que hizo práctico a Ethernets es que, a pesar de
que los adaptadores Ethernet no implementan el control de flujo a nivel de enlace, los
hosts generalmente proporcionan un mecanismo de control de flujo de extremo a extremo,
como veremos más adelante. Como resultado, es raro encontrar situaciones en las que
cualquier host esté continuamente bombeando marcos a la red.
Finalmente, vale la pena decir algunas palabras acerca de por qué Ethernets ha tenido
tanto éxito, para que podamos entender las propiedades que debemos emular con
cualquier tecnología de LAN que intente reemplazarla. Primero, una Ethernet es
extremadamente fácil de administrar y mantener: no había switches en las redes Ethernet
originales, no había tablas de enrutamiento o de configuración para mantenerse al día, y
es fácil agregar un nuevo host a la red. Es difícil imaginar una red más simple de
administrar. Segundo, es barato: el cable es barato y el único otro costo es el adaptador
de red en cada host. Ethernet se arraigó profundamente por estas razones, y cualquier
enfoque basado en conmutadores que aspiraba a desplazarlo requería una inversión
adicional en infraestructura (los conmutadores), además del costo de cada adaptador.
Como veremos en el siguiente capítulo, una tecnología basada en conmutadores logró
reemplazar la Ethernet de acceso múltiple: Ethernet conmutada. Retener la simplicidad de
la administración (y la familiaridad) fue una razón clave para este éxito.
¿Donde están ahora?
ANILLOS DE TOKEN
Durante muchos años, hubo dos formas principales de construir una LAN: Ethernet o
token ring. La forma más prevalente de token ring fue inventada por IBM y estandarizada
como IEEE 802.5. Los anillos de señales tienen una serie de cosas en común con
Ethernet: el anillo se comporta como un solo medio compartido y emplea un algoritmo
distribuido para decidir qué estación puede transmitir en ese medio en un momento dado,
y cada nodo en un anillo determinado puede ver todos los Paquetes transmitidos por otros
nodos.
La diferencia más obvia entre el token ring y Ethernet es la topología; mientras que en
Ethernet, luego en el modo de funcionamiento de la interfaz, cada nodo está conectado a
un par de vecinos, uno en sentido ascendente y otro en sentido descendente. El "token"
es solo una secuencia especial de bits que circula alrededor del anillo; Cada nodo recibe y
luego envía el token. Cuando un nodo que tiene un cuadro para transmitir ve el token, lo
quita del anillo (es decir, no reenvía el patrón de bits especial) y, en cambio, inserta su
cuadro en el anillo. Cada nodo en el camino simplemente reenvía el marco, con el nodo
de destino guardando una copia y enviando el mensaje al siguiente nodo en el anillo.
Cuando el marco vuelve al remitente, este nodo quita su marco del anillo (en lugar de
continuar enviándolo) y vuelve a insertar el token. De esta manera, algún nodo
descendente tendrá la oportunidad de transmitir un cuadro. El algoritmo de acceso a los
medios es justo en el sentido de que a medida que el token circula alrededor del anillo,
cada nodo tiene la oportunidad de transmitir. Los nodos son atendidos en forma de round-
robin.
A lo largo de las décadas, aparecieron muchas variantes de token rings, y la Interfaz de
Datos Distribuidos de Fibra (FDDI) fue una de las últimas en ver una implementación
significativa. Al final, los token ring se perdieron en Ethernet, especialmente con el
advenimiento de la conmutación de Ethernet y las variantes de Ethernet de alta velocidad
(100-Mbit y Gigabit Ethernet).
2.7 INALAMBRICO
Las tecnologías inalámbricas se diferencian de los enlaces por cable en algunas formas
importantes, mientras que al mismo tiempo comparten muchas propiedades comunes. Al
igual que los enlaces por cable, las cuestiones de los errores de bits son de gran
preocupación, por lo general aún más debido al entorno de ruido impredecible de la
mayoría de los enlaces inalámbricos. El encuadre y la confiabilidad también tienen que
ser abordados. A diferencia de los enlaces por cable, la energía es un gran problema para
la conexión inalámbrica, especialmente porque los dispositivos inalámbricos pequeños
suelen utilizar los enlaces (como los de los sensores de sonido) que no dependen del
acceso a la energía (por ejemplo, una batería pequeña). Además, no se puede disparar a
una potencia arbitrariamente alta con un transmisor de radio: existen dudas sobre la
interferencia con otros dispositivos y, por lo general, las regulaciones sobre la cantidad de
energía que un dispositivo puede emitir a una frecuencia determinada.
Los medios inalámbricos también son inherentemente de acceso múltiple; es difícil dirigir
la transmisión de la radio para que el receptor reciba las señales de radio de cualquier
transmisor con suficiente potencia en su vecindario. Por lo tanto, el control de acceso a
los medios es un problema central para los enlaces inalámbricos. Y, debido a que es difícil
controlar quién recibe su señal cuando se transmite por aire, es posible que también
deban abordarse los problemas de escuchas ilegales.
Existe una amplia variedad de diferentes tecnologías inalámbricas, cada una de las cuales
hace concesiones diferentes en diversas dimensiones. Una forma sencilla de categorizar
las diferentes tecnologías es por las tasas de datos que proporcionan y qué tan alejados
pueden estar los nodos de comunicación. Otras diferencias importantes incluyen qué
parte del espectro electromagnético usan (incluso si requiere una licencia) y cuánta
energía consumen. En esta sección, discutimos tres tecnologías inalámbricas
prominentes:
Table
Cuadrito
Comunicaciones Satelitales
Otra forma de comunicación inalámbrica que ve la aplicación en ciertos escenarios se
basa en el uso de satélites. Los teléfonos satelitales (satélites) usan satélites de
comunicación como estaciones base, comunicándose en bandas de frecuencia que se
han reservado internacionalmente para uso satelital. En consecuencia, el servicio está
disponible incluso cuando no hay estaciones base celulares. Los teléfonos satelitales rara
vez se usan cuando el celular está disponible, ya que el servicio suele ser mucho más
caro. (Alguien tiene que pagar por poner los satélites en órbita.) Los teléfonos satelitales
también son más grandes y pesados que los teléfonos celulares modernos, debido a la
necesidad de transmitir y recibir en distancias mucho más largas para alcanzar satélites
en lugar de torres de teléfonos celulares. La comunicación por satélite se usa más
ampliamente en la transmisión de televisión y radio, aprovechando el hecho de que la
señal se transmite, no punto a punto. La comunicación de datos de alto ancho de banda
vía satélite está disponible comercialmente, pero su precio relativamente alto (tanto para
el equipo como para el servicio) limita su uso a las regiones donde no hay alternativa
disponible.
2.8 RESUMEN
Este capítulo introdujo los muchos y variados tipos de enlaces que se utilizan para
conectar a los usuarios a las redes existentes y para construir grandes redes desde cero.
Si bien los enlaces varían enormemente en sus características detalladas, existen muchos
problemas y técnicas para resolverlos que son comunes. Analizamos los cinco problemas
clave que deben resolverse para que dos o más nodos conectados por algún medio
puedan intercambiar mensajes entre sí.
El primer problema es codificar los bits que forman un mensaje binario en la señal en el
nodo fuente y luego recuperar los bits de la señal en el nodo receptor. Este es el problema
de la codificación, y se hace difícil por la necesidad de mantener sincronizados los relojes
del remitente y del receptor. Discutimos cuatro técnicas de codificación diferentes (NRZ,
NRZI, Manchester y 4B / 5B) que difieren en gran medida en cómo codifican la
información del reloj junto con los datos que se transmiten. Uno de los atributos clave de
los códigos de codificación de los codigos es la debilidad de la fe, la tolerancia a los
signos codificados.
Una vez que es posible transmitir bits entre nodos, el siguiente paso es averiguar cómo
empaquetar estos bits en marcos. Este es el problema del encuadre, y se reduce a poder
reconocer el principio y el final de cada encuadre. Nuevamente, observamos varias
técnicas diferentes, incluidos los protocolos orientados a bytes, los protocolos orientados
a bits y los protocolos basados en reloj.
Suponiendo que cada nodo sea capaz de reconocer la colección de bits que forman una
trama, el tercer problema es determinar si esos bits son correctos o si posiblemente se
corrompieron en tránsito. Este es el problema de detección de errores, y observamos tres
enfoques diferentes: verificación de redundancia cíclica, paridad bidimensional y sumas
de comprobación. De estos, el enfoque CRC ofrece las mejores garantías y es el más
utilizado a nivel de enlace.
Dado que algunas tramas llegarán al nodo de destino que contiene errores y, por lo tanto,
tendrán que ser descartadas, el siguiente problema es cómo recuperarse de tales
pérdidas. El objetivo es hacer que el enlace parezca confiable. El enfoque general de este
problema se llama ARQ e implica el uso de una combinación de reconocimientos y
tiempos de espera. Analizamos tres algoritmos ARQ específicos: parar y esperar, ventana
deslizante y canales concurrentes. Lo que hace que estos algoritmos sean interesantes es
la eficacia con la que utilizan el enlace, con el objetivo de mantener la tubería llena.
El problema final no es relevante para los enlaces punto a punto, pero es el problema
central en los enlaces de acceso múltiple: cómo mediar el acceso a un enlace compartido
para que todos los nodos tengan la oportunidad de transmitir sus datos. En este caso,
observamos una variedad de protocolos de acceso a medios (Ethernet y varios protocolos
inalámbricos) que han sido muy útiles para el desarrollo de redes de área local. El acceso
a los medios en las redes inalámbricas se complica más por el hecho de que algunos
nodos pueden estar ocultos entre sí debido a las limitaciones de alcance de la transmisión
de radio. La mayoría de los dispositivos de protocolo inalámbricos comunes se designan
como nodos de estación base, mientras que los otros nodos móviles se comunican con
una estación base. Los estándares y las tecnologías inalámbricas están evolucionando
rápidamente, con redes de malla, en las que todos los nodos se comunican como pares,
que comienzan a emerger.
CEREMONIAS
1. Muestre las codificaciones NRZ, Manchester y NRZI para el patrón de bits que se
muestra en la Figura 2.36. Supongamos que la señal NRZI comienza baja.
Bits
1001111100010001
NRZ
Reloj
Manchester
NRZI
n FIGURA 2.36 Diagrama para Ejercicio1.
2. Muestre la codificación 4B / 5B y la señal NRZI resultante para la siguiente secuencia
de bits: 1110 0101 0000 0011
3. Muestre la codificación 4B / 5B y la señal NRZI resultante para la siguiente secuencia
de bits: 1101 1110 1010 1101 1011 1110 1110 1111
4. En la codificación 4B / 5B (Tabla 2.2), solo dos de los códigos de 5 bits utilizados
terminan en dos 0s. ¿Cuántas posibles secuencias de 5 bits existen (utilizadas por el
código existente o no) que cumplan con la restricción más fuerte de tener a lo sumo un
primer inicial y como máximo un 0 final? ¿Podrían asignarse todas las secuencias de 4
bits a tales secuencias de 5 bits?
5. Suponiendo un protocolo de trama que utiliza relleno de bits, muestre la secuencia de
bits transmitida a través del enlace cuando la trama contiene la siguiente secuencia de
bits: 110101111101011111101011111110 Marque los bits rellenos.