Parte 3 61 Próximo Material Seguiremos la siguiente estrategia para presentar el restante material del curso: En toda red de comunicación de data se requiere conectar dos o más nodos o estaciones utilizando algún medio de comunicación. Además, se requiere la solución a los siguientes 5 problemas: 1. Encoding 2. Framing 3. Error Detection 4. Reliable Delivery 5. Access Mediation Luego discutiremos los LAN’s (local area networks) típicos y sus correspondientes media access control mechanisms. Finalmente discutiremos los WAN’s (wide area networks). Como parte de la discusión de los WAN's presentaremos circuit switching y packet switching. Parte 3 62 Network Interface Card (NIC) La solución a los 5 problemas (encoding, framing, error detection, reliable delivery, access mediation) generalmente es implementada en el NIC (network interface card). El NIC es una tarjeta que por un lado se conecta al I/O bus de la computadora o workstation y por el otro lado se conecta al medio físico de transmisión. CPU cache NIC hacia la red memoria I/O bus Cuando dos computadoras se comunican entre sí, los NIC’s intercambian bits, pero las computadoras intercambian frames de data. El NIC es controlado por un software o driver que corre en la computadora o workstation. Parte 3 63 Network Interface Card (NIC) La cantidad de memoria en toda computadora es finita. Aún si fuera de múltiples GB, sigue siento finita. La cantidad de memoria así como el ancho de banda disponible para transmitir son los dos recursos más importantes en una red. En una computadora que esté actuando como un switch o un router los paquetes de data tienen que ser almacenados en memoria hasta que que les toque el turno de ser transmitidos utilizando el ancho de banda disponible. Un software que corre en la computadora o workstation, un driver, controla el NIC. Por ejemplo, el driver le da instrucciones al NIC. El driver le indica al NIC desde cuál localización de memoria es que va a salir la data a ser transmitida. De forma similar, el driver también le indica al NIC en cuál localización de memoria es que se va a escribir la data que se recibe. ¿Qué determina la velocidad de un nodo en la red, el clock speed del CPU o el tiempo de acceso a la memoria? La velocidad de un nodo en la red es determinada por el más lento de los dos parámetros. La memoria siempre es más lenta que el CPU. Parte 3 64 Encoding El NIC realiza, entre otras funciones, la labor de encoding. El workstation, computadora o nodo que envía la data codifica los bits a transmitirse en señales que los medios de transmisión pueden transportar. El workstation, computadora o nodo que recibe las señales decodifica éstas para recuperar los bits originales. Computadora Computadora NIC bits encoder NIC señal señal medio de comunicación Veremos los siguientes tipos de encoding: a. Bipolar (return to zero o RZ) b. Non-return to zero c. Manchester d. 4B/5B decoder bits Parte 3 65 Bipolar or Return to Zero (RZ) Encoding Reglas para el Bipolar Encoding: Un “1” se representa con un pulso positivo Un “0” se representa con un pulso negativo La señal siempre regresa a 0 antes de que llegue el próximo pulso. Esto es, es una señal RZ (return-tozero). Hay 3 niveles de señal: +, 0, - Parte 3 66 Ejemplo de Bipolar Encoding (RZ) 1 0 0 1 1 1 0 1 bit stream a ser transmitido clock del transmisor +V señal bipolar return to zero señal transmitida 0 -V extracted clock en el receiver 1 0 0 1 1 1 0 1 data recibida Parte 3 67 Limitaciones del Bipolar Encoding Si asumimimos 0’s y 1’s equiprobables, esto es, que la probabilidad de que ocurran 0’s es igual a la probabilidad de que ocurran 1’s, el valor promedio o valor DC de la onda, promediado en un largo intérvalo de tiempo es 0. Aún si el promedio calculado en un largo intérvalo de tiempo es 0, puede darse el caso de “varios” 1’s consecutivos o varios 0’s consecutivos, en cuyo caso el nivel DC será distinto de 0. Ejemplo: En este ejemplo podemos observar cómo según aumenta el número de 1’s consecutivos aumenta el nivel DC. Parte 3 68 Limitaciones del Bipolar Encoding ¿Cómo calculamos el nivel DC de una onda? El nivel DC es lo mismo que el valor promedio de la onda. El valor promedio de cualquier onda calculado en un intérvalo de tiempo T está dado por la siguiente fórmula: T 1 Average ( f(t) ) = T f (t )dt 0 ¿Qué problema causaría un nivel DC distinto de 0? La señal recibida se acopla al circuito local vía un transformador. En un transformador, el DC no induce voltaje. Tan sólo calienta los alambres. Esto es, con un nivel DC disinto de 0, se nos cae la señal, disminuye el SNR (signal to noise ratio) y aumenta el BER (bit error rate). Otra ventaja de utilizar el transformador: El receiver puede utilizar su propio power supply. La señal le llega vía el acople con el transformador. De lo contrario, el transmisor tendría que suplirle power al receiver. Parte 3 69 Non-Return to Zero (NRZ) Encoding Posiblemente la forma más sencilla de codificar los bits a transmitirse es utilizando codificación NRZ o non-return to zero. Bajo codificación NRZ un “1” lógico es codificado como un voltaje alto, y un “0” lógico es codificado como un voltaje bajo. Bajo NRZ si no hay transición en la data, esto es, permanece constante, entonces el nivel de voltaje, ya sea alto o bajo, permanece constante. Parte 3 70 Non-Return to Zero (NRZ) Encoding Ejemplo: La siguiente figura muestra un patrón de 0’s y 1’s codificados bajo NRZ y una función de moving average que calcula el promedio de los últimos 4 bits de data. Podemos observar que el promedio de la onda o su componente DC varía con el tiempo. Este componente DC fue calculado mediante la implementación de un moving average de los últimos 4 bits de data. Parte 3 71 Non-Return to Zero (NRZ) Encoding Si fueramos a utilizar codificación NRZ crearíamos los siguientes problemas: 1. Si la onda tiene un componente DC, entonces al utilizar acople por transformador, el cual de todas formas vamos a tener que utilizar en los repetidores y en el receiver, la señal se nos cae. 2. El receiver tiene un circuito de clock recovery para derivar señal de clock o timing que le permita permanecer sincronizado al transmisor. El circuito de clock recovery o es un PLL (phase locked loop) o un circuito sintonizado. El receiver necesita transiciones de 0 a 1 y viceversa para mantenerse sincronizado al transmisor. Una larga secuencia de 1’s consecutivos o de 0’s consecutivos hará que el receiver pierda la sincronización con el transmisor. Por lo tanto, NO podemos utilizar codificación NRZ para transmitir los bits. Parte 3 72 Non-Return to Zero (NRZ) Encoding La siguiente figura muestra el programa en LabVIEW que generó las dos anteriores gráficas. Parte 3 73 Manchester Encoding Otra alternativa para transmitir data es formar una señal NRZ (non-return-to-zero) con Manchester Encoding. Manchester encoding se utiliza en redes Ethernet. NRZ implica que la señal no regresa al nivel de 0. En este caso usamos codificación Manchester. Reglas para la codificación Manchester: Un “1” se codifica como una transición low to high. Un “0” se codifica como una transición high to low. Siempre habrá una transición de high a low o de low a high en el centro de cada celda. Esta transición es utilizada por el clock recovery circuit del receiver para generar un pulso de clock en el centro de la segunda mitad de la celda de cada bit. Para poder identificar el centro de cada celda y por lo tanto los instantes en que las transiciones representan la data, es necesario que el receiver se sincronice al transmisor. Para lograr dicha sincronización el transmisor envía al comienzo de cada frame o paquete de data un preamble el cual consiste de 64 1’s y 0’s que alternan. Parte 3 74 Manchester Encoding Dada la presencia de ruido, para el hardware es más fácil detectar una transición en voltaje (e.g. de bajo a alto o de alto a bajo) que un nivel de voltaje en específico. Con codificación Manchester el hardware está edge trigerred, y los cambios son conocidos como rising edge o falling edge. Parte 3 75 Ejemplo de Manchester Encoding 1 0 0 1 1 1 0 bit stream a ser transmitido 1 clock del transmisor +V Manchester encoded NRZ señal transmitida -V extracted clock en el receiver 1 0 0 1 1 1 0 1 data recibida Parte 3 76 Manchester Encoding Al utilizar Manchester encoding nos garantizamos que si asumimos 1’s y 0’s equiprobables, esto es, que la probabilidad de que ocurra un 1 en la data es igual a la probabilidad de que ocurra un 0, entonces no habrá componente DC. En este caso, aún si ocurrieran varios 1’s o varios 0’s consecutivos, el nivel DC siempre va a permanecer cerca de 0. El problema que tiene el NRZ con Manchester encoding es que duplica la velocidad con que se hace necesario transmitir las transiciones en la data. Esto es, el receiver ahora tan sólo tiene la mitad del tiempo para detectar cada pulso de la señal. La velocidad a la que cambia la señal es el baud rate. En el caso del NRZ con Manchester encoding el bit rate es la mitad del baud rate. Por lo tanto, la codificación tan sólo es 50 % eficiente. Parte 3 77 4B/5B Encoding La codificación 4B/5B reduce las ineficiencias del Manchester encoding sin tener que sufrir el problema de largas secuencias de 1’s o 0’s consecutivos. La idea o concepto del 4B/5B es insertar bits adicionales de forma que sea posible romper patrones de muchos 0’s o muchos 1’s consecutivos. Específicamente, cada 4 bits de data son codificados en una secuencia de 5 bits que es transmitida al receiver. De ahí el nombre de 4B/5B. Estos códigos de 5 bits que son generados por el 4B/5B encoding tienen las siguientes propiedades: a. Cuenta con no más de un cero al principio de cada código. b. Cuenta con no más de dos ceros al final de cada código. c. Al transmitir la secuencia total de bits nunca habrá más de 3 ceros consecutivos. Veamos una tabla para el 4B/5B encoding: Parte 3 78 4B/5B Encoding Redes FDDI utilizan el 4B/5B encoding. Parte 3 79 4B/5B Encoding d. Los códigos de 5 bits generados son transmitidos utilizando codificación NRZI (non-return to zero inverted). Bajo NRZI: a) Una transición de “0” a “1” o de “1” a “0” representa un “1” lógico. Esto resuelve el problema de las largas secuencias de 1’s. b) La ausencia de transición representa un “0” lógico. Parte 3 80 Differential Manchester Encoding Differential Manchester encoding es similar al Manchester encoding en el sentido de que siempre hay una transición en el centro de cada celda. Esta transición en el centro de cada celda es para facilitar el clock recovery en el receiver. Sin embargo, tan sólo ocurre una transición al principio de cada celda si el próximo bit a ser codificado es un 0. Si es un 1, entonces no ocurre dicha transición. Esto tiene el efecto de que la señal de salida puede asumir dos posibles formas, dependiendo de cuáles fueron las condiciones iniciales. Estas dos posibles formas tienen la propiedad de que una es la versión invertida de la otra. Esta propiedad es muy útil para la transmisión vía twisted pair pues en realidad no va a importar la polaridad de los cables que van a ser conectados al receiver. Differential Manchester encoding se utiliza en redes token ring. Parte 3 81 Differential Manchester Encoding 1 0 0 1 1 1 0 bit stream a ser transmitido 1 clock del transmisor Manchester encoded NRZ señal transmitida +V -V o Manchester encoded NRZ señal transmitida +V -V extracted clock en el receiver 1 0 0 1 1 1 0 1 data recibida