La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

HDLC Protocolos de enlace High-Level Data Link Control protocol

Presentaciones similares


Presentación del tema: "HDLC Protocolos de enlace High-Level Data Link Control protocol"— Transcripción de la presentación:

1 HDLC Protocolos de enlace High-Level Data Link Control protocol
Seminario de HDLC Protocolos de enlace HDLC High-Level Data Link Control protocol Protocolo de Control de enlace de datos de alto nivel 2009 Seminario de HDLC

2 Veamos algo de sus orígenes y actualidad
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 2009 Seminario de HDLC

3 Evolución del protocolo
ITU LAP Link Access Procedure Nivel 2 de X.25 ITU LAP-B LAP-D Arquitectura SNA de IBM Application Layer Transmission Layer SDLC Synchronous Data Link Control protocol Control Layer 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 ISO HDLC High-Level Data Link Control ISO 13239 2009 Seminario de HDLC

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

5 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) 2009 Seminario de HDLC

6 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 2009 Seminario de HDLC

7 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 2009 Seminario de HDLC

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

9 Estructura de la trama Flag Enmarca la trama al inicio Long 1B
Existe siempre Enmarca la trama al inicio Tienen el patrón único 7EH = Long 1B Enmarca la trama al final Dirección Existe siempre Identifica al DTE en el otro extremo En MP tiene dir binaria, en P2P o en broadcast es 00H Long 1 B Control Identifica tipo de trama de tres posibles Contiene numeración de tramas y comandos/respuestas M = 8 CRC Contiene la secuencia verificadora de trama Calculado como CRC con el algoritmo CCITT-16 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 2009 Seminario de HDLC

10 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 tips: Trama I Ns Interm. 1 Final Nr 3 bits Û módulo 8 Trama S 1 Nada Sondeo Nr 00 RR = ack 01 RJ = nack 10 RNR = ack 11 SRJ = nack 3 bits Û módulo 8 Trama U 1 P/F Modificador Indicador 2009 Seminario de HDLC

11 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 tips: Trama I Ns Interm. 1 Final Nr Trama S 1 Nada Sondeo Nr 00 RR = ack 01 RJ = nack 10 RNR = ack 11 SRJ = nack 3 bits Û módulo 8 Trama U 1 P/F Modificador Indicador 2009 Seminario de HDLC

12 Estructura del campo Control
Trama I Ns 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 = 2n – 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 2009 Seminario de HDLC

13 Estructura del campo Control
Trama S 1 Nada Sondeo Nr 00 RR = ack 01 RJ = nack 10 RNR = ack 11 SRJ = nack 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. Nr: N° a recibir (Number to Receive) 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 Tx El bit P/F es usado en modo Poll (P/F = 1) en todas las variantes habilitando el cambio de dirección del flujo. 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) Indicador 2009 Seminario de HDLC

14 Estructura del campo Control
Trama U 1 P/F Modificador Indicador Inicialización Modo y Aceptación 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 Identificación Exchange Identification XID [con datos para negociar] (recibe XID) Desconexión Disconnect DISC Request Disconnect RDISC Disconnect Mode DM Control de Flujo Urg Frame Reject FMRJ [con datos de la trama rechazada] Unnumbered Poll UP Reset RSET Información Unnumbered Information UI [con datos] (no se confirma) 2009 Seminario de HDLC

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

16 Estructura de la trama tip:
Veamos una trama cualquiera, mostrada como un string binario que está siendo transmitido y es observado. 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: 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: 2009 Seminario de HDLC

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

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

19 Esquema de funcionamiento
En resumen, el esquema de trabajo de HDCL es de tres etapas 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 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) 2009 Seminario de HDLC

20 Conexión … … … Exitosa NO exitosa A B A B A B
No hay rechazos; uno de los lados toma contacto y el otro confirma, luego fija el modo y confirma, y finalmente negocian. 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. A B A B A B (i) (ii) SIM SIM SIM UA UA UA SABME SABM SNRM RIM UA UA SIM XID XID UA RIM XID SABM SIM UA XID XID 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 2009 Seminario de HDLC

21 Controlando el flujo con RR (en MNR)
Los tiempos de Flujograma están fuera de escala A B A B A B Ns:3 Nr:3 0 Ns:3 Nr:3 0 Ns:3 Nr:3 0 Ns:4 Nr:3 0 Ns:4 Nr:3 0 Ns:4 Nr:3 0 Ns:5 Nr:3 0 Ns:5 Nr:3 0 Ns:5 Nr:3 0 Ns:6 Nr:3 1 Ns:6 Nr:3 1 Ns:6 Nr:3 1 RR:7 1 RR:7 1 RR:7 1 Ns:7 Nr:3 0 RR:3 1 I, Ns:7 I, Ns:0 RR:3 1 Ns:0 Nr:3 0 RR:7 1 RR:7 1 Ns:7 Nr:3 0 Ns:7 Nr:3 0 Ns:0 Nr:3 0 Ns:0 Nr:3 0 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. 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. 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. 2009 Seminario de HDLC

22 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. Los tiempos de Flujograma están fuera de escala A B Ns:3 Nr:3 0 Ns:4 Nr:3 0 Ns:5 Nr:3 0 Este RNR detiene el flujo A ® B Ns:6 Nr:3 1 I, Ns:0 RNR:7 1 I, Ns:7 RR:3 1 Este RR re-arranca el flujo A ® B RR:7 1 Este RR sondea si puede enviar A ® B Ns:7 Nr:3 0 Ns:0 Nr:3 0 El ejemplo corresponde a Modo Normal de Respuesta 2009 Seminario de HDLC

23 Controlando el flujo con RNR (II)
Los tiempos de Flujograma están fuera de escala 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. A B I, Ns:4 Ns:3 Nr:3 0 I, Ns:3 Ns:4 Nr:3 0 Aquí se queda sin buffers de Rx Ns:5 Nr:3 0 Ns:6 Nr:3 1 RNR:6 1 Necesita el 6 otra vez! RR:3 1 RNR:6 1 (opc.) Aquí soluciona el problema de buffers Necesario: ¿Se puede enviar A ® B ? RR:3 1 Ns:3 Nr:6 0 Ns:4 Nr:6 0 RR:5 1 RR:6 1 Ns:6 Nr:5 0 ¡¡ B puede recibir !! Ns:7 Nr:5 0 El ejemplo corresponde a Modo Normal de Respuesta 2009 Seminario de HDLC

24 Controlando el flujo con Reject
Un RJ que emite un receptor le obliga al emisor a posicionar su ventana corrediza en ese Nr rechazado 2 3 4 5 6 7 W=6 RJ 5 1 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 2 3 4 5 6 7 W=6 SRJ 5 Como se puede ver, un comando SRJ,5 introduce una latencia adicional RR 6 1 2009 Seminario de HDLC

25 Resumen de los principios del intercambio de Info
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) 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 2009 Seminario de HDLC

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

27 Evitación del deadlock
Dependiente de la implementación Evitación del deadlock Las distintas implementaciones usan temporizadores para evitar los deadlocks que pueden producirse por falta de robustez del protocolo Si hay temporizadores, se configuran en tiempo de implementación en cada nodo, y se negocian en un XID 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 2009 Seminario de HDLC

28 Evitación del deadlock
Dependiente de la implementación 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: T1 para cerrar la ventana de recepción por si se pierde la trama con P/F=1; T2 con esa ventana ya cerrada para esperar paquetes de la capa de red y T3 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 2009 Seminario de HDLC

29 Trabajando con tres temporizadores
Dependiente de la implementación Trabajando con tres temporizadores T1 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 2009 Seminario de HDLC

30 Trabajando con tres temporizadores
Dependiente de la implementación Trabajando con tres temporizadores T2 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 T1 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 2009 Seminario de HDLC

31 Trabajando con tres temporizadores
Dependiente de la implementación Trabajando con tres temporizadores T3 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 T1, más T2 más el tiempo de la modulación de la trama más larga 2009 Seminario de HDLC

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

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

34 2009 Seminario de HDLC


Descargar ppt "HDLC Protocolos de enlace High-Level Data Link Control protocol"

Presentaciones similares


Anuncios Google