340 likes | 608 Views
Protocolos elementales de enlace. Formato de la trama básica: tipo, seq, ack, información Protocolo Simplex (Figura 3-9) Una sola dirección Capas siempre prontas Tiempo de procesamiento nulo Buffer infinito Canal perfecto. Protocolo simple stop-and-wait. Pare y espere (Figura 3-10)
E N D
Protocolos elementales de enlace • Formato de la trama básica: • tipo, seq, ack, información • Protocolo Simplex (Figura 3-9) • Una sola dirección • Capas siempre prontas • Tiempo de procesamiento nulo • Buffer infinito • Canal perfecto
Protocolo simple stop-and-wait • Pare y espere (Figura 3-10) • Velocidad de recepción finita o lo que es equivalente tamaño máximo de buffer en RX • Solución 1: insertar retardo • Como se calcula el retardo ? • si es demasiado corto retransmito de más, • si es muy largo uso bajo del canal • Puede haber variaciones según la carga del receptor • Solución 2: reconocimiento positivo (ACK) • uso half-duplex del canal
Protocolo simple sobre canal con ruido (1) • Las tramas se pueden corromper o perder totalmente. Si se corrompen la suma de comprobación lo detecta • Se agrega código detector • Sólo se reconocen las tramas que llegan bien • Temporizadores para recuperación de errores si no llega el reconocimiento.
Protocolo simple sobre canal con ruido (2) • Problema: • se pierde ACK y se duplica una trama • Necesidad de números de secuencia • Cuantos números de secuencia se necesitan ? • En este protocolo solo 2: 0 y 1 pues hasta no recibir reconocimiento del 0 no intento mandar el 1 • Cuando se espera la trama 0 se rechazan las que no sean 0 y al recibirse se espera por la 1 • Reconocimiento positivo y negativo
Piggybacking • Es interesante el uso del canal para datos en ambas direcciones • Como el campo ACK es parte del encabezado, puedo mandar información en la misma trama de ACK • Esto se llama píggybacking • Problema: Cuanto esperar ? • POCO: debo mandar trama solo con ACK • MUCHO: el TX da timeout
Ventanas deslizantes (1) • Más robustos frente a problemas • Números de secuencia de 0 a 2n-1 (n bits) • Ventana de transmisión • números de secuencia que se pueden transmitir • Ventana de recepción • números de secuencia que se pueden aceptar • Las ventanas de TX y RX no tienen porque tener los mismos límites ni el mismo tamaño
Ventanas deslizantes (2) • Se le permite a la capa 2 más libertad en el órden de transmisión y recepción de tramas • PERO: las debe mandar en orden a la red y la capa física las manda en orden • Los números de secuencia en la ventana del TX son tramas enviadas pero no reconocidas • El TX debe mantener las tramas para eventualmente reenviarlas
Ventanas deslizantes (3) • Si no se dispone lugar en la ventana no se deben aceptar paquetes de la red • La ventana del RX son los números de secuencia que puede aceptar • Si se recibe algo fuera de la ventana se “descarta silenciosamente” • Si lo recibido coincide con el límite inferior, se pasa a la red, se manda ACK y se rota la ventana
Ventanas deslizantes (4) • Caso simple de tamaño de ventana = 1 • Normalmente no hay problemas • PERO: Si ambos extremos empiezan simultáneamente
Uso del canal • Se ha supuesto retardo en viaje de tramas y reconocimientos bajo • Si no lo es, el uso del canal sería muy bajo • Ej. Satélite 50 kpbs con 500 ms de retardo de ida y vuelta • tramas de 1000 bits • se gastaría el 96% del tiempo esperando • La combinación de alto retardo, gran ancho de banda y trama corta es desastrosa
Mejora de uso del canal (1) • No esperar reconocimiento trama a trama • Agrandar la ventana del transmisor • Se mandan tramas para llenar el canal y luego se esperan los reconocimientos • Largo de trama: L bits • Capacidad del canal: b bps • Retardo de ida y vuelta: R segundos • En stop-and-wait el canal se usa • L/b / (L/b+R) = L/(L+bR) si L < bR efic<50%
Mejora de uso del canal (2) • Si en una larga secuencia se pierde una trama que hacemos ? • Descartamos la mala • Mientras el TX se entera ya mandó muchas que pueden haber llegado bien • Dos soluciones: • go back n (RXWin=1) bajo uso del canal • selective repeat (RXwin>1)
Números de secuencia y ventanas • Ventana de transmisión TXWin • Si TXWin = MAX_SEQ + 1 • mando 0 a 7 (ventana 8) • recibo ACK=7 • mando otros 0 a 7 • recibo ACK=7 • no se si es que los segundos 0 a 7 llegaron bien o que no llego ninguno • Por eso TXWin <= MAX_SEQ
Números de secuencia y ventanas • Ventana de recepción RXWin • Si se usa repetición selectiva, (RXWin>1) y se aceptan tramas fuera de orden, hay problemas • Si RXWin = MAX_SEQ • TX envía 0 a 6, RX los recibe bien y manda ACKs • RX avanza la ventana para admitir 7 a 5 • se pierden los ACKs y el TX retransmite el 0 • cae en la ventana del RX, se acepta como nuevo • Falla: la nueva vent. se superpone con la vieja • Por eso: RXWin <=(MAX_SEQ+1)/2
Números de secuencia y ventanas • número de buffers del receptor = ventana de recepción y no la cantidad de números de secuencia • Mejora adicional: uso de reconocimientos negativos NAK • cuando se recibe una trama con error • cuando se recibe una trama fuera de secuencia
Especificación y verificación de Protocolos • Alta complejidad en la implementación de protocolos • Se buscan técnicas para la especificación y verificación de protocolos • Problemas • bloqueo (deadlock) • recepción de eventos inesperados • Máquina de estados finita • Redes de Petri
Ejemplos • HDLC High-level Data Link Control • Origen SDLC de IBM modificado por ANSI a ADCCP, modificado por ISO a HDLC. • HDLC modificado por ITU-T a LAP y re-modificado luego a LAPB para hacerlo más compatible con las últimas versiones de HDLC • Usado en X25, enlaces punto a punto, etc • Orientado a bits y usa relleno de bits para transparencia de datos
Enlace de Datos en Internet en enlaces punto a punto • SLIP • Serial Link IP • Objetivo: conectarse a una red con TCP/IP • PPP • Point to Point Protocol • Objetivo: generalizar SLIP
Protocolo SLIP • Flag 0xC0 al final0xC0 => 0xD0 0xC00xD0 => 0xD0 0xD0 • Compresión de encabezamiento • Problemas: • No detecta errores • Sólo soporta IP • Se debe conocer la dirección IP • No hay autentificación de usuario • No es estandard
Protocolo PPP • Provee de: • Entramado (framing) con detección de error • LCP: para conectarse, testear la línea, negociar opciones y terminar una conexión • NCP: una manera de negociar opciones a nivel de capa de red (por ej. la dirección)
5 48 ATM