Caracter de Inicio y Fin con relleno de caracter Supera el problema de resincronización al hacer que cada trama comience con una secuencia de caracteres ASCCII, DLE, STX y termine con una secuencia DLE EXT Está fuertemente atada a caracteres de 8 bits y al código ASCCII. Cuando se transmiten datos binarios, como programas objeto o números de punto flotante, puede ocurrir que los caracteres correspondientes a DLE STX o a DLE ETX ocurran en los datos.
DLE STX A DLE B DLE ETX DLE STX A DLE DLE B DLE ETX DLE STX A DLE B DLE ETX Datos enviados por la capa de red Datos después del relleno de caracteres por el nivel de enlace de datos Datos pasadoa al nivel de red en el lado receptor DLE de relleno Caracter de Inicio y Fin con relleno de caracter
Protocolos orientados a caracter Basados en juegos de caracteres (alfabetos) Dos tipos de caracteres: información y control Anteriores a las arquitecturas de Comunicación Generales Limitaciones Limitados a un alfabeto (IA5, EBCDIC…) Tramas multiformato Detección de errores rudimentarios (paridades) Mecanismos de gestión de transparencia ineficientes Típicamente usan parada y espera Poco flexibles
Cabecera Datos no transparentes Datos no transparentes Datos no transparentes Cabecera Transparente Datos transparentes PAD PAD SYN SYN SOH STX ETB BCC ETX BCC PAD PAD PAD SYN SYN ETX BCC DLE PAD PAD DLE SYN DLE SYN DLE SOH DLE STX ETX BCC PAD DLE PAD Protocolo Binary Synchronous Control (BSC)IBM años 60Dos Tipos de tramasPAD: Paquet Asembler DesasemblerSYN: SynchronousDLE: Data Link EscapeSTX: Start of TextETX: End Of TextSOH: Start Of Header Tranparencia usando el caracter de escape: STX
Protocolos orientado a Bit Respuesta a las limitaciones de los protocolos orientados a caracter Objetivos Independencia del alfabeto Flexibilidad en configuraciones, aplicaciones y grado de sofisticación Detección de errores sofisticada (códigos cíclicos) Alto rendimiento
Indicadores de Inicio y Fin, con relleno de Bits Los datos tienen un número arbitrario de bits y admite códigos de caracteres con un número arbitrario de bits por carácter. Una trama comienza con un número especial de Bits 01111110 llamado bandera Cada vez que la capa de enlace de datos del transmisor encuentra 5 unos conscutivos en los datos, autómáticamente inserta un bit 0 en la cadena de bits, bits de relleno Cuando el receptor ve cinco bits 1 de entrada consecutivos seguidos de un bit 0, automáticamente borra el bit 0 de relleno
011011111111111111110010 011011111011111011111010010 Bits de relleno 011011111111111111110010 Datos originales Datos con relleno de bits Datos como se guardan en la memoria del receeptor después de remover el relleno Indicadores de Inicio y Fin, con relleno de Bits
Con el relleno de bits , el límite entre las tramas puede reconocerse sin ambigüedad mediante la bandera. Si el receptor pierde la pista de donde está debe explorar la entrada en busca de banderas pues estas están presentes en los límites de las tramas no en los datos. Si lo datos de usuario contienen el patrón indicador 01111110 se transmite como 011111010 pero se almacena en la memoria del receptor como: 01111110 Indicadores de Inicio y Fin, con relleno de Bits
Control de errores Existen dos estrategias básicas para manejar los erreores: Códigos de corrección de errores: Incluir suficiente información redundante en cada bloque de datos transmitidos para que el receptor pueda deducir lo que debió ser el carácter transmitido. Códigos de detección de errores: Incluir suficiente redundancia para que el receptor sepa que ha ocurrido un error, (pero no qué error) y entonces solicite una retransmisión
El receptor debe tener realimentación sobre lo que está ocurriendo al otro lado de la línea El protocolo exíge que el receptor envíe tramas de control especiales de regreso que contengan acuse positivo o negativo de las tramas de entrada. Si el transmisor recibe un acuse negativo significa que algo falló y que la trama debe transmitirse otra vez. Control de errores
Datos Buffer de transmisión Buffer de retransmisión Buffer de recepción TRANSMISOR RECEPTOR Hacia el nivel 3 La información que se retiene: Control de errores
Si por problemas de hardware se desaparece una trama completa y si el protocolo espera un acuse positivo o negativo de la recepción de la trama, la capa del nivel de enlace de datos debe colocar temporizadores. Si la trama y el acuse se pierden, el temporizador terminará alertando al transmisor sobre un problema potencial. La solución es retransmitir la trama. Si las tramas se repiten muchas veces, se corre el peligro de que en transmisor acepte más de dos veces la trama y la pase a la capa de red, para evitar esto es necesario asignar números de secuencia a las tramas de salida. Control de errores
Una trama tiene m bits de datos Una trama tiene r bits redundantes o de comprobación. La longitud total de la trama es n
A la unida n que contiene datos más comprobación se le denomina Palabra de código de n bits. n=m + r Corrección de errores
Dadas dos palabras código 10001001 y 10110001, es posible determinar cuántos bits correspondientes difieren aplicando una OR EXCLUSIVO a las dos palabras código y contar la cantidad de bits 1 en el resultado. 10001001 10110001 00111000 Distancia Hamming d=3 Corrección de errores
La cantidad de posiciones de bit en la que difieren dos palabras código se llama distancia Hamming. Si dos palabras código están separadas una distancia Hamming d, se requeriran d bits para corregir los errores y convertir una en otra. Corrección de errores
En la mayoría de las aplicaciones de transmisión de datos , tidos los 2m mensajes de datos posibles son legales, pero debido a la forma en que se comprueban los bits de comprobación no se usan las 2n palabras código posibles. Dado el algoritmo de cálculo de los bits de comprobación, se construe una lista completa depalabras código legales y se encuenra las dos palabras código cuya distancia Hamming sea mínima. Esta distancia es la distancia Hamming de todo el código. Corrección de errores
Para detectar d errores se necesita un código con distancia d+1 con esta distancia no hay manera de que d errores de un bit puedan cambiar una palabra código válida en otra. Para corregir d errores se necesita un código de distancia 2d+1, las palabras código legales están tan separedas, que, aun con d cambios la palabra código original sigue estando más cercana que cualquier otra palabra código, por lo que puede determinarse de manera única. Corrección de errores
Ejemplo de detección de errores Código al que se le agrega un bit de paridad. El bit de paridad se escige de tal manera, que la cantidad de bits en la palabra código sea par. 10110101 por paridad par se vuelve 101101011 10110001 por paridad par se vuelve 101100010. Un solo código con un solo bit de paridad tiene una distancia de 2 , pues cualquier error de un bit produce una palabra código con la paridad equivocada.
Un código con 4 palabras código claves: 0000000000,0000011111,1111100000, 1111111111 Este código tiene una distancia de 5. Si llega una palabra código 0000000111, el receptor sabe que debió ser 0000011111. Ejemplo de corrección de errores
Códigos de detección de errores El código más difundido es el código polinómico (Código de Redundancia Cíclica CRC). Los códigos polinómicos se basan en el tratamiento de cadenas de bits como representaciones de polinomios con coeficientes de 0 y 1 solamente. Una trama de k bits se considera como la lista de coeficientes de un polinomio con k que van de xk-1 a x0
Código de Redundancia Cíclica Cuando se emplea el método de código polinómico el transmisor y el receptor deben acordar un polinomio Generador G(x), por adelantado. Tato los bits mayor como menor del generador deben ser 1. Para calculr la suma de comprobación para una trama con m bits, correspondiente al polinomio M(x), la trama deberá ser más larga que el polinomio generador.
La idea es anexar una suma de comprobación al final de la trama de tal manera que el polinomio representado por la trama más la suma de comprobación sea divisible entre G(x). Cuando el receptor recibe la trama con suma de comprobación, intenta dividirlo entre G(x). Si hay un residuo, ha habido un error en la transmisión. Código de Redundancia Cíclica
Protocolo CRC Sea r el grado de G(x). Anexe r bits cero al final de la trama, para que ahora tenga m+r bits y corresponda al polinomio xrM(x). Divida la cadena de bits correspondiente a xrM(x) entre la correspondiente a G(x) usando división en módulo 2. Reste el residuo (que siempre es de r o menos bits) a la cadena de bits correspondiente a xrM(x) usando una resta en módulo 2. El resultado es la trama con suma de comprobación a transmitirse. Polinomio T(x)
La idea es anexar una suma de comprobación al final de la trama de tal manera que el polinomio representado por la trama más la suma de comprobación sea divisible entre G(x). Cuando el receptor recibe la trama con suma de comprobación, intenta dividirlo entre G(x). Si hay un residuo, ha habido un error en la transmisión. Código de Redundancia Cíclica
Protocolo CRC Sea r el grado de G(x). Anexe r bits cero al final de la trama, para que ahora tenga m+r bits y corresponda al polinomio xrM(x). Divida la cadena de bits correspondiente a xrM(x) entre la correspondiente a G(x) usando división en módulo 2. Reste el residuo (que siempre es de r o menos bits) a la cadena de bits correspondiente a xrM(x) usando una resta en módulo 2. El resultado es la trama con suma de comprobación a transmitirse. Polinomio T(x)
Al recibir la trama con suma de comprobación, el receptor lo divide entre G(x). Es decir, calcula: Protocolo CRC
Ejemplos de CRC CRC 16 CRC CCITT CRC 32 ETHERNET
PPP (Point to Point Protocol) El protocolo de enlace 'característico' de Internet es el PPP, que se utiliza en: Líneas dedicadas punto a punto Conexiones RTC analógicas o digitales (RDSI) Conexiones de alta velocidad sobre enlaces SONET/SDH Puede funcionar de forma síncrona o asíncrona (puerto COM de un PC) Es multiprotocolo, una comunicación soporta simultáneamente varios protocolos a nivel de red.
Formato de trama PPP 1 1 1 1 ó 2 Variable 2 ó 4 1 La trama siempre tiene un número entero de bytes El campo dirección no se utiliza, siempre vale 11111111 El campo control casi siempre vale 00000011, que especifica trama no numerada (funcionamiento sin ACK). Generalmente en el inicio se negocia omitir los campos dirección y control (compresión de cabeceras) Bytes ?
Componentes de PPP LCP (Link Control Protocol): negocia parámetros del nivel de enlace en el inicio de la conexión, Ej.: Supresión de campos dirección y control Uso de protocolos fiables (con ACK) NCP (Network Control Protocol): negocia parámetros del nivel de red: Protocolos soportados Asignación dinámica de dirección IP. CHAP (Challenge Handshake Authentication Protocol): realiza tarea de autentificación de usuario.
Funcionamiento de CHAP (Challenge Handshake Protocol) Enviar identificador (userid) Soy Pedro Ruiz a#$frhg&&&% Q324$*& OK Usar password, calcular respuesta MD5 y enviar CLIENTE SERVIDOR Enviar cadena de caracteres aleatoria (reto). Usar password , calcular respuesta MD5. Comprobar y responder Pw: saturno Pw: saturno Conexión establecida
Diagrama simplificado
Página anterior | Volver al principio del trabajo | Página siguiente |