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 |