La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Cátedra de Comunicaciones 2009 Seminario de HDLC Protocolos de enlaceHDLC High-Level Data Link Control protocol Protocolo de Control de enlace de datos.

Presentaciones similares


Presentación del tema: "Cátedra de Comunicaciones 2009 Seminario de HDLC Protocolos de enlaceHDLC High-Level Data Link Control protocol Protocolo de Control de enlace de datos."— Transcripción de la presentación:

1 Cátedra de Comunicaciones 2009 Seminario de HDLC Protocolos de enlaceHDLC High-Level Data Link Control protocol Protocolo de Control de enlace de datos de alto nivel

2 Cátedra de Comunicaciones 2009 Seminario de HDLC El protocolo de control de enlace de datos de alto nivel, conocido por sus iniciales en inglés HDLC, tiene un largo historial y su raíz se encuentra en varios estándares con pocas variantes. ¿Porqué? PORQUE HDLC ES UN PROTOCOLO MADURO, ROBUSTO Y ESTABLE, MUY FLEXIBLE Y CON UN EXCELENTE CONTROL DE FLUJO PARA LA TRANSMISIÓN SINCRÓNICA Veamos algo de sus orígenes y actualidad

3 Cátedra de Comunicaciones 2009 Seminario de HDLC Evolución del protocolo ANSI ADCCP Advanced Data Comm Ctrl Proced. ISO HDLC High-Level Data Link Control 3309 Frame 4335 Procs comunes 6159 Procs U 6256 Procs B ITU LAP Link Access Procedure Nivel 2 de X.25 Arquitectura SNA de IBM Application Layer Transmission Layer SDLC Synchronous Data Link Control protocol Control Layer ITU LAP-B LAP-D ISO HDLC High-Level Data Link Control ISO 13239

4 Cátedra de Comunicaciones 2009 Seminario de HDLC Características distintivas HDLC tiene las siguientes características que lo definen: Es un protocoloSINCRÓNICO DE VENTANA DESLIZANTE CON CONEXIÓN CONFIABLE ORIENTADO A BITS

5 Cátedra de Comunicaciones 2009 Seminario de HDLC El protocolo en detalle Es un protocolo únicamente de enlace No avanza sobre otras capas. A diferencia de otros, como PPP por ejemplo, sólo cumple funciones de capa 2 y está diseñado con ese fin Presta todos los servicios esperables según el modelo OSI El protocolo presta a la capa 3 los servicios de entramado, control de flujo y detección de errores, que son los definidos por ISO para la capa 2 del OSI Entrama de modo sencillo Está orientado exclusivamente a bits y realiza entramado explícito entre banderas hexadecimales 7E, generando transparencia mediante la técnica de Zero Insertion después del quinto bit 1. Tiene longitud de carga útil extendida Detecta errores aunque no corrige Trabaja con CRC (Ciclic Redundance Checking) mediante el polinomio CCITT- 16 insertando un campo al final de la trama denominado FCS (Frame Check Sequence). No hace Corrección de errores Controla el flujo Tiene varias tramas de control y ventana corrediza con 2 módulos estándares elegibles en la implementación: 8 (normal) o 128(extendido); algunas implementaciones tienen además 16 (intermedio) y (súper)

6 Cátedra de Comunicaciones 2009 Seminario de HDLC Cualidades del protocolo: fortalezas Establece el modo confiable con muchas alternativas. Bajo ciertas condiciones, también acepta el modo no confiable aunque sólo en ciertas implementaciones Flexible Tiene una etapa de establecimiento del enlace en la que permite negociar distintas condiciones de trabajo para la comunicación y para la recuperación de situaciones adversas Versátil Las características de los ETD y de las condiciones de la comunicación son soportados en alguno de sus dos modos de trabajo, peer-to-peer o maestro-esclavo, para conservar la sincronía de enlace en modo conectado sea dúplex o semidúplex Adaptable

7 Cátedra de Comunicaciones 2009 Seminario de HDLC Cualidades del protocolo: qué se le objeta Requiere mucho expertise en la configuración. Aunque tiene buenos defaults, con ellos puede ser ineficiente Complejo Tiene algo de overhead en la trama, pero además tiene mucho overhead de tráfico para gestionar el enlace en canales semidúplex Subóptimo A pesar de su madurez y fortaleza, no es todo lo robusto que se podría esperar y puede tener deadlocks Algo frágil

8 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructura de la trama La estructura mostrada corresponde a M=8 Para otros módulos cambia el campo Control

9 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructura de la trama Flag Existe siempre Enmarca la trama al inicio Tienen el patrón único 7EH = Long 1B Flag Existe siempre Enmarca la trama al final Tienen el patrón único 7EH = Long 1B Info Existe si control = 1xxx xxxx Contiene el/los paquetes de red Carga útil de la capa 3: una parte, uno o varios paquetes Long L b Dirección Existe siempre Identifica al DTE en el otro extremo E n MP tiene dir binaria, en P2P o en broadcast es 00H Long 1 B Control Existe siempre Identifica tipo de trama de tres posibles Contiene numeración de tramas y comandos/respuestas Long 1 B M = 8 CRC Existe siempre Contiene la secuencia verificadora de trama Calculado como CRC con el algoritmo CCITT-16 Long 1 B

10 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructura del campo Control Este esquema es M=8 => Nros Ns y Nr de 3b, para otros módulos el campo cambia su longitud Existen tres tipos de tramas y el primer bit [y el segundo] de control la definen. Las tramas I siempre contienen Info; las S nunca lo contienen; las U pueden contenerlo Trama I 0 Ns 0 Interm. 1 Final Nr 3 bits módulo 8 tips: Trama S Nada 1 Sondeo Nr 00 RR = ack 01 RJ = nack 10 RNR = ack 11 SRJ = nack 3 bits módulo 8 Trama U 1 1 P/F Modificador Indicador

11 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructura del campo Control Este esquema es M=8 => Nros Ns y Nr de 3b, para otros módulos el campo cambia su longitud Existen tres tipos de tramas y el primer bit [y el segundo] de control la definen. Las tramas I siempre contienen Info; las S nunca lo contienen; las U pueden contenerlo Trama I 0 Ns 0 Interm. 1 Final Nr tips: Trama S Nada 1 Sondeo Nr 00 RR = ack 01 RJ = nack 10 RNR = ack 11 SRJ = nack 3 bits módulo 8 Trama U 1 1 P/F Modificador Indicador

12 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructura del campo Control Trama I 0 Ns 0 Interm. 1 Final Nr Ns: N° de envío (Number Sending) Nr: N° a recibir (Number to Receive) Este N° identifica a la trama que se está enviando en este momento, y rota (roll over) con cada trama que se envía, desde 0 a Ns máximo y llamando a Ns máx MaxSeq y: MaxSeq = M -1 y en general MaxSeq = 2 n – 1 donde n representa cantidad de bits de Ns. En este caso 0 Ns 7 Este N° identifica al N° de la trama que se está esperando recibir, por lo tanto confirma todas las tramas anteriores. Rota (roll over) según el mismo esquema que Ns Esta acción de cargar un acuse de recibo en una trama de info se llama piggyback Este bit indica si esta trama que se envía es intermedia o la última disponible. Última en buffer de envío o última de la ventana, P/F=1 P/F=1 actúa como bit de sondeo (Polling) al otro lado

13 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructura del campo Control Trama S Nada 1 Sondeo Nr 00 RR = ack 01 RJ = nack 10 RNR = ack 11 SRJ = nack Indicador RR y RNR son Acuse de Recibo explícitos (+ack, por positive acknowledge, o ack) de todo lo recibido hasta Nr - 1 Al mismo tiempo, P/F=1 hace sondeo. RJ es una negación de acuse (nack, por negative acknowlegde, o -ack) indicando con Nr el N° de trama donde se debe posicionar nuevamente la ventana de T x SRJ es una negación de acuse selectivo (nack, ídem anterior) indicando con Nr el N° de trama que específicamente se solicita retransmitir (no reposiciona W) El bit P/F es usado en modo Poll (P/F = 1) en todas las variantes habilitando el cambio de dirección del flujo. Nr: N° a recibir (Number to Receive)

14 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructura del campo Control Trama U 1 1 P/F Modificador Indicador Set Ininitialization Mode/Request Initialization Mode SIM/RIM Set Response Mode (Normal o Asynchronous Balanced) SNRM, SABM Set Extended Response Mode SNRME, SABME Unnumbered Acknowledgement UA Exchange Identification XID [con datos para negociar] (recibe XID) Disconnect DISC Request Disconnect RDISC Disconnect Mode DM Frame Reject FMRJ [con datos de la trama rechazada] Unnumbered Poll UP Reset RSET Unnumbered Information UI [con datos] (no se confirma) Inicialización Modo y Aceptación Identificación Desconexión Control de Flujo Urg Información

15 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructuras típicas de tramas 7EAddrCtrlFCS 7E Data Trama I (información): longitud L bits 7EAddrCtrlFCS 7E Trama S (supervisora o control): longitud 6 bytes 7EAddrCtrlFCS 7E Trama U: C o R sin datos: longitud 6 bytes 7EAddrCtrlFCS 7E Data Trama U (no numerada): C o R con datos: longitud L bits

16 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructura de la trama Veamos una trama cualquiera, mostrada como un string binario que está siendo transmitido y es observado. Asumimos la convención arbitraria de que se transmite primero el bit de más a la izquierda, pero los representamos como los leemos tip: Veremos cómo es la lógica con la que quedó armada y se transmitió y qué pasa cuando se recibe, observando los efectos y sin detenernos en los procesos de cada entidad de enlace:

17 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructura de la trama Capa 3 Capa Se agrega el CRC como FCS Se agregan campos Dirección y Control Se hace Zero Insertion Se agrega la bandera Capa 2 Capa 1 Manipulación del string en el envío Se recibe como carga útil

18 Cátedra de Comunicaciones 2009 Seminario de HDLC Estructura de la trama Capa 3 Capa Capa 2 Capa 1 Manipulación del string en la recepción Es para este ETD En secuencia CRC OK

19 Cátedra de Comunicaciones 2009 Seminario de HDLC Esquema de funcionamiento Durante esta etapa se hace contacto entre ambas partes (SIM/UA), se fija la variante del protocolo (Set Mode/UA), y opcionalmente se negocian los parámetros según capacidades (XID/XID) Conexión En resumen, el esquema de trabajo de HDCL es de tres etapas Intercambio Durante esta etapa se intercambian datos siempre de manera confiable controlando el flujo según las reglas del modo fijado (I, RR, RNR) [RJ/SRJ] Desconexión Durante esta etapa los ETD se desconectan ya sea mediante solicitud (RD) o indicación (DISC) y se informan que quedan desconectados cuando se informan el estado (DM)

20 Cátedra de Comunicaciones 2009 Seminario de HDLC Conexión Exitosa No hay rechazos; uno de los lados toma contacto y el otro confirma, luego fija el modo y confirma, y finalmente negocian. AB SIM UA SNRM UA XID NO exitosa En un caso (i) el contactado no acepta el modo y en el otro (ii) uno, varios o todos de el/los parámetro(s) que se intentan negociar genera rechazo total. AB SIM UA SABME SIM RIM UA SABM UA XID (i) AB UA RIM XID SIM (ii) SIM SABM UA … … … El canal queda establecido con el UA al SIM. El UA al SET MODE resetea contadores, buffers y demás recursos. El segundo XID deja los parámetros negociados por la regla del mínimo

21 Cátedra de Comunicaciones 2009 Seminario de HDLC Controlando el flujo con RR (en MNR) Un RR usado como acuse explícito +ack confirma cuando no hay datos en buffer de Tx hasta (Nr–1). Siempre lleva el bit P/F=1 e indica el Nr esperado. AB Ns:3 Nr:3 0 RR:7 1 … Ns:4 Nr:3 0 Ns:5 Nr:3 0 Ns:6 Nr:3 1 Si no hay datos en el buffer de envío, y se recibe un RR, se envía un ack ( RR o RNR ) sin dilaciones. Esto sirve para mantener el flujo en el enlace y también la sincronía. Ns:7 Nr:3 0 Ns:0 Nr:3 0 … AB Ns:3 Nr:3 0 RR:7 1 … Ns:4 Nr:3 0 Ns:5 Nr:3 0 Ns:6 Nr:3 1 RR:3 1 Ns:7 Nr:3 0 … RR:7 1 Ns:0 Nr:3 0 Luego de un RR, que tiene el P/F=1, no se puede hacer otra cosa que esperar el Poll, o sea ser sondeado por el otro nodo salvo que un temporizador que se use expire. AB Ns:3 Nr:3 0 RR:7 1 … Ns:4 Nr:3 0 Ns:5 Nr:3 0 Ns:6 Nr:3 1 RR:3 1 Ns:7 Nr:3 0 … RR:7 1 Ns:0 Nr:3 0 I, Ns:7 I, Ns:0 Los tiempos de Flujograma están fuera de escala

22 Cátedra de Comunicaciones 2009 Seminario de HDLC Controlando el flujo con RNR (I) Un RNR permite detener el flujo entrante, cuando se produce una contingencia. Siempre porta el P/F=1 y el Nr esperado. AB Ns:3 Nr:3 0 RNR:7 1 … Ns:4 Nr:3 0 Ns:5 Nr:3 0 Ns:6 Nr:3 1 RR:3 1 Ns:7 Nr:3 0 RR:7 1 Ns:0 Nr:3 0 … Este RNR detiene el flujo A B Este RR re- arranca el flujo A B I, Ns:0 I, Ns:7 … Este RR sondea si puede enviar A B Los tiempos de Flujograma están fuera de escala El ejemplo corresponde a Modo Normal de Respuesta

23 Cátedra de Comunicaciones 2009 Seminario de HDLC Controlando el flujo con RNR (II) I, Ns:4 I, Ns:3 Aquí se queda sin buffers de Rx Si el nodo que debe detener el trafico entrante tiene datos en el buffer de envío, se emite un RNR y ante el próximo polling se contesta con datos. AB Ns:3 Nr:3 0 RNR:6 1 … Ns:4 Nr:3 0 Ns:5 Nr:3 0 Ns:6 Nr:3 1 RR:3 1 Ns:6 Nr:5 0 Ns:7 Nr:5 0 … Ns:3 Nr:6 0 Ns:4 Nr:6 0 RNR:6 1 (opc.) RR:3 1 Aquí soluciona el problema de buffers RR:5 1 RR:6 1 Necesario: ¿Se puede enviar A B ? ¡¡ B puede recibir !! Los tiempos de Flujograma están fuera de escala El ejemplo corresponde a Modo Normal de Respuesta Necesita el 6 otra vez!

24 Cátedra de Comunicaciones 2009 Seminario de HDLC Controlando el flujo con Reject Un RJ que emite un receptor le obliga al emisor a posicionar su ventana corrediza en ese Nr rechazado W=6RJ Como se puede ver, un comando RJ,5 tiene el mismo efecto que RR,5,1 Un SRJ que emite un receptor le obliga al emisor a reenviar sólo la trama Nr solicitada W=6 SRJ 5 5 Como se puede ver, un comando SRJ,5 introduce una latencia adicional RR

25 Cátedra de Comunicaciones 2009 Seminario de HDLC Resumen de los principios del intercambio de Info El número Ns es el N° DE SECUENCIA DE ENVÍO y con ese número un ETD le informa al otro qué número de trama está enviando. Debe estar dentro de la ventana de Tx El número Nr es el N° DE SECUENCIA DE RECEPCIÓN y con él un ETD le informa al otro qué número de trama espera. Debe estar dentro de la ventana de Rx Cada ETD tiene dos ventanas corredizas, una de transmisión y una de recepción, y pueden o no ser iguales, pero son recíprocas Se hace acuse de recibo explícito de hasta Nr-1 con una trama S RR o RNR, o con un nack RJ o SRJ, usando el campo Nr y con P/F=1 Se hace acuse implícito de hasta Nr-1 con una trama I indicando qué se espera recibir a continuación usando Nr (piggyback)

26 Cátedra de Comunicaciones 2009 Seminario de HDLC El proceso de recepción de datos Modo Listen Trama I Trama U FMRJ Suspender Listen Atiende modo URGENTE En Ventana Cierra la Ventana Rx P/F=1 FMRJ Desentrama Envía a Red Limpia recursos Genera ack NO SI Pasa a modo Transmisión

27 Cátedra de Comunicaciones 2009 Seminario de HDLC Evitación del deadlock Las distintas implementaciones usan temporizadores para evitar los deadlocks que pueden producirse por falta de robustez del protocolo La expiración de el/los temporizador(es) desencadena mecanismos de time-out con reintentos que son configurables y negociables en XID Si no hay reintentos o se agotan, el siguiente paso es SIM y SABM/E o SNRM/E lo que en definitiva configura un reset del enlace Si hay temporizadores, se configuran en tiempo de implementación en cada nodo, y se negocian en un XID Dependiente de la implementación

28 Cátedra de Comunicaciones 2009 Seminario de HDLC Evitación del deadlock Implementación más plana Un solo temporizador para limitar el tiempo de idle (ocioso) del enlace. De este modo, la línea no puede estar ociosa más tiempo que el indicado por T. Si no hay datos en el buffer de envío y dentro de ventana de Tx, se envía RR a las T unidades de tiempo Tres temporizadores para evitar los deadlocks: T 1 para cerrar la ventana de recepción por si se pierde la trama con P/F=1; T 2 con esa ventana ya cerrada para esperar paquetes de la capa de red y T 3 para dar time-out si no se recibe un ack/nack en la línea. Los valores son configurables y negociables con XID Implementación más compleja Dependiente de la implementación

29 Cátedra de Comunicaciones 2009 Seminario de HDLC Trabajando con tres temporizadores Ficha técnica Nombre: Temporizador de Cierre de ventana Propósito:Limitar la esperar del arribo de una trama I en modo listen Corre en:El lado receptor Arranque:Con la bandera de fin de trama I (excepto que P/F=1) Parada:Con la siguiente trama I recibida completa Reintentos:No genera Excepción:No tiene No corre:Cuando se reciben tramas S o U Cálculo:Puede ser arbitrariamente mayor que la modulación de la trama más larga y depende de la tasa de arribo de tramas T1T1 Dependiente de la implementación

30 Cátedra de Comunicaciones 2009 Seminario de HDLC Trabajando con tres temporizadores Ficha técnica Nombre: Temporizador de Piggyback Propósito:Limitar el tiempo de espera para entramar Corre en:El lado receptor Arranque:Con el cierre de ventana de Rx (P/F=1 en I, o T 1 expirado) Parada:Con el primer paquete entramado Reintentos:No genera Excepción:No tiene No corre:Cuando hay tramas listas (aunque sea 1) esperando para Tx Cuando el sondeo es explícito (trama S con P/F=1) Cálculo:Debería ser arbitrariamente mayor que el período de la tasa de arribo de paquetes T2T2 Dependiente de la implementación

31 Cátedra de Comunicaciones 2009 Seminario de HDLC Trabajando con tres temporizadores Ficha técnica Nombre: Temporizador de Time-out Propósito:Limitar el tiempo de espera de una respuesta válida Corre en:El lado emisor Arranque:Con la bandera de fin de cualquier trama I/S con P/F=1 Parada:Con la primera trama I completa con Ns correcto Con la primera trama S con P/F=1 Reintentos:Según definición en la implementación y XID Excepción:En lugar del reintento puede generar un reset No corre:Cuando se envían tramas I con P/F=0, o tramas U Cálculo:Debe ser arbitrariamente mayor que la suma de dos latencias, más T 1, más T 2 más el tiempo de la modulación de la trama más larga T3T3 Dependiente de la implementación

32 Cátedra de Comunicaciones 2009 Seminario de HDLC En resumen Hemos visto cómo el protocolo HDLC opera con sus diversas característicasSINCRÓNICO DE VENTANA DESLIZANTE CON CONEXIÓN CONFIABLE ORIENTADO A BITS

33 Cátedra de Comunicaciones 2009 Seminario de HDLC ¡Muchas Gracias por la atención! ¿Más preguntas?

34 Cátedra de Comunicaciones 2009 Seminario de HDLC


Descargar ppt "Cátedra de Comunicaciones 2009 Seminario de HDLC Protocolos de enlaceHDLC High-Level Data Link Control protocol Protocolo de Control de enlace de datos."

Presentaciones similares


Anuncios Google