cátedra de comunicaciones 2009 seminario de hdlc protocolos de enlacehdlc high-level data link...
TRANSCRIPT
2009 Seminario de HDLC
Cátedra de Comunicaciones
Seminario de HDLCSeminario de HDLC
Protocolos de enlace
HDLCHDLCHigh-Level Data Link Control protocol
Protocolo de Control de enlace de datos de alto nivel
2009 Seminario de HDLC
Cátedra de Comunicaciones
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, PORQUE HDLC ES UN PROTOCOLO MADURO, ROBUSTO Y ESTABLE, MUY FLEXIBLE Y CON UN ROBUSTO Y ESTABLE, MUY FLEXIBLE Y CON UN
EXCELENTE CONTROL DE FLUJO PARA LA EXCELENTE CONTROL DE FLUJO PARA LA TRANSMISIÓN SINCRÓNICATRANSMISIÓN SINCRÓNICA
Veamos algo de sus orígenes y actualidad
2009 Seminario de HDLC
Cátedra de Comunicaciones
Evolución del protocoloEvolución del protocolo
ANSIADCCP
AdvancedData CommCtrl Proced.
ISO HDLC High-Level Data Link Control3309 Frame4335 Procs comunes6159 Procs U6256 Procs B
ITULAP
Link AccessProcedureNivel 2 de
X.25
Arquitectura SNA de IBM
Application Layer
Transmission Layer
SDLCSynchronous
Data Link Controlprotocol
Control Layer
ITU
LAP-BLAP-D
ISOHDLC
High-Level DataLink ControlISO 13239
2009 Seminario de HDLC
Cátedra de Comunicaciones
Características distintivasCaracterísticas distintivas
HDLC tiene las siguientes características que lo definen:
Es un protocolo
SINCRÓNICOSINCRÓNICO
DE VENTANA DESLIZANTEDE VENTANA DESLIZANTE
CON CONEXIÓNCON CONEXIÓN
CONFIABLECONFIABLE
ORIENTADO A BITSORIENTADO A BITS
2009 Seminario de HDLC
Cátedra de Comunicaciones
El protocolo en detalleEl 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 OSIEl 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 corrigeTrabaja 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 flujoTiene 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 32768 (súper)
2009 Seminario de HDLC
Cátedra de Comunicaciones
Cualidades del protocolo: fortalezasCualidades 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
Cátedra de Comunicaciones
Cualidades del protocolo: qué se le objetaCualidades del protocolo: qué se le objeta
Requiere mucho expertise en la configuración. Aunque tiene buenos defaults, con ellos puede ser ineficienteComplejo
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
Cátedra de Comunicaciones
Estructura de la tramaEstructura de la trama
La estructura mostrada corresponde a M=8Para otros módulos cambia el campo Control
2009 Seminario de HDLC
Cátedra de Comunicaciones
Estructura de la tramaEstructura de la trama
FlagExiste siempre
Enmarca la trama al inicio Tienen el patrón único 7EH = 01111110
Long
1B
FlagExiste siempre
Enmarca la trama al final Tienen el patrón único 7EH = 01111110
Long
1B
InfoExiste si control =
1xxx xxxx
Contiene el/los paquetes de redCarga útil de la capa 3: una parte, uno o varios paquetes
Long
L b
DirecciónExiste siempre
Identifica al DTE en el otro extremoEn MP tiene dir binaria, en P2P o en broadcast es 00H
Long
1 B
Control Existe siempre
Identifica tipo de trama de tres posiblesContiene numeración de tramas y comandos/respuestas
Long 1 B M = 8
CRCExiste siempre
Contiene la secuencia verificadora de tramaCalculado como CRC con el algoritmo CCITT-16
Long
1 B
2009 Seminario de HDLC
Cátedra de Comunicaciones
Estructura del campo Estructura del campo ControlControl
Este esquema es M=8 => Nros Ns y Nr de 3b, para otros módulos el campo cambia su longitudExisten 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 00 Ns0
Interm.1
Final
Nr
3 bits módulo 8 3 bits módulo 8
tips:
Trama S 11 000
Nada1
Sondeo
Nr00 RR = ack01 RJ = nack10 RNR = ack11 SRJ = nack
3 bits módulo 8
Trama U 11 11 P/F ModificadorIndicador
2009 Seminario de HDLC
Cátedra de Comunicaciones
Estructura del campo Estructura del campo ControlControl
Este esquema es M=8 => Nros Ns y Nr de 3b, para otros módulos el campo cambia su longitudExisten 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 00 Ns0
Interm.1
Final
Nr
tips:
Trama S 11 000
Nada1
Sondeo
Nr00 RR = ack01 RJ = nack10 RNR = ack11 SRJ = nack
3 bits módulo 8
Trama U 11 11 P/F ModificadorIndicador
2009 Seminario de HDLC
Cátedra de Comunicaciones
Estructura del campo Estructura del campo ControlControl
Trama I 00 Ns0
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=1P/F=1 actúa como bit de sondeo (Polling) al otro lado
2009 Seminario de HDLC
Cátedra de Comunicaciones
Estructura del campo Estructura del campo ControlControl
Trama S 11 000
Nada1
Sondeo
Nr00 RR = ack01 RJ = nack10 RNR = ack11 SRJ = nack
Indicador
RR y RNR son Acuse de Recibo explícitos (+ack, por positive acknowledge, o ack) de todo lo recibido hasta Nr - 1Al 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 Tx
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)
2009 Seminario de HDLC
Cátedra de Comunicaciones
Estructura del campo Estructura del campo ControlControl
Trama U 11 11 P/F ModificadorIndicador
Set Ininitialization Mode/Request Initialization Mode SIM/RIMSet Response Mode (Normal o Asynchronous Balanced) SNRM, SABMSet Extended Response Mode SNRME, SABMEUnnumbered Acknowledgement UA
Exchange Identification XID [con datos para negociar] (recibe XID)
Disconnect DISCRequest Disconnect RDISCDisconnect Mode DM
Frame Reject FMRJ [con datos de la trama rechazada]Unnumbered Poll UPReset RSET
Unnumbered Information UI [con datos] (no se confirma)
InicializaciónModo y
Aceptación
Identificación
Desconexión
Control deFlujo Urg
Información
2009 Seminario de HDLC
Cátedra de Comunicaciones
Estructuras típicas de tramasEstructuras típicas de tramas
7E Addr Ctrl FCS FCS 7EData
Trama I (información): longitud L bits
7E Addr Ctrl FCS FCS 7E
Trama S (supervisora o control): longitud 6 bytes
7E Addr Ctrl FCS FCS 7E
Trama U: C o R sin datos: longitud 6 bytes
7E Addr Ctrl FCS FCS 7EData
Trama U (no numerada): C o R con datos: longitud L bits
2009 Seminario de HDLC
Cátedra de Comunicaciones
Estructura de la tramaEstructura de la trama
011111100000000001010011010011101001011001110011111011001101101011101111110
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:
2009 Seminario de HDLC
Cátedra de Comunicaciones
Estructura de la tramaEstructura de la trama
0100111000101000111111001011001110011111
Capa 3
Capa 2
00000000010100110100111000101000111110100101100111001111100110011011010111
Se agrega el CRC como FCS
0000000001010011010011100010100011111010010110011100111110Se agregan campos Dirección y Control
010011100010100011111010010110011100111110
Se hace Zero Insertion
011111100000000001010011010011100010100011111010010110011100111110011001101101011101111110Se agrega la bandera
Se agrega la bandera
Capa 2
Capa 1
Manipulación del string en el envío
Se recibe como carga útil
2009 Seminario de HDLC
Cátedra de Comunicaciones
0000000001010011010011100010100011111010010110011100111110
Estructura de la tramaEstructura de la trama
0100111000101000111111001011001110011111
Capa 3
Capa 2
0110011011010111
011111100000000001010011010011100010100011111010010110011100111110011001101101011101111110
Capa 2
Capa 1
Manipulación del string en la recepción
0110011011010111Es para este ETD
En secuencia
CRC OK
2009 Seminario de HDLC
Cátedra de Comunicaciones
Esquema de funcionamientoEsquema 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
IntercambioDurante 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
Cátedra de Comunicaciones
ConexiónConexión
Exitosa
No hay rechazos; uno de los lados toma contacto y el otro confirma, luego fija el modo y confirma, y finalmente negocian.
A B
SIM
UA
SNRM
UA
XID
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.
A B
SIM
UA
SABME
SIM
RIM
UA
SABM
UA
XID
XID
(i) A B
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
2009 Seminario de HDLC
Cátedra de Comunicaciones
Controlando el flujo con RR (en MNR)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.
A B
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
…
A B
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.
A B
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
2009 Seminario de HDLC
Cátedra de Comunicaciones
Controlando el flujo con RNR (I)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.
A B
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
2009 Seminario de HDLC
Cátedra de Comunicaciones
Controlando el flujo con RNR (II)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.
A B
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
RR:3 1Aquí 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!
2009 Seminario de HDLC
Cátedra de Comunicaciones
Controlando el flujo con RejectControlando 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
5 6 7 0 1 2
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
5
Como se puede ver, un comando SRJ,5 introduce una latencia adicional
RR 6
6 7 0 1 2 3
2009 Seminario de HDLC
Cátedra de Comunicaciones
Resumen de los principios del intercambio de Resumen de los principios del intercambio de InfoInfo
• 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)
2009 Seminario de HDLC
Cátedra de Comunicaciones
El proceso de recepción de datosEl proceso de recepción de datos
Modo Listen
Trama I Trama U FMRJ
SuspenderListen
Atiende modoURGENTE
En Ventana
Cierra la Ventana Rx
P/F=1
FMRJ
DesentramaEnvía a Red
Limpia recursosGenera ack
NO
NO
NO NO
SI
SI
SI
SI
Pasa a modoTransmisión
2009 Seminario de HDLC
Cátedra de Comunicaciones
Evitación del deadlockEvitació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
2009 Seminario de HDLC
Cátedra de Comunicaciones
Evitación del deadlockEvitació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
Dependiente de la implementación
2009 Seminario de HDLC
Cátedra de Comunicaciones
Trabajando con tres temporizadoresTrabajando con tres temporizadores
Ficha técnicaFicha técnica
Nombre: Temporizador de Cierre de ventanaPropósito: Limitar la esperar del arribo de una trama I en modo listenCorre en: El lado receptorArranque: Con la bandera de fin de trama I (excepto que P/F=1) Parada: Con la siguiente trama I recibida completaReintentos: 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
T1
Dependiente de la implementación
2009 Seminario de HDLC
Cátedra de Comunicaciones
Trabajando con tres temporizadoresTrabajando con tres temporizadores
Ficha técnicaFicha técnica
Nombre: Temporizador de PiggybackPropósito: Limitar el tiempo de espera para entramarCorre en: El lado receptorArranque: Con el cierre de ventana de Rx (P/F=1 en I, o T1 expirado)Parada: Con el primer paquete entramadoReintentos: No genera
Excepción: No tiene
No corre: Cuando hay tramas listas (aunque sea 1) esperando para TxCuando 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
T2
Dependiente de la implementación
2009 Seminario de HDLC
Cátedra de Comunicaciones
Trabajando con tres temporizadoresTrabajando con tres temporizadores
Ficha técnicaFicha técnica
Nombre: Temporizador de Time-outPropósito: Limitar el tiempo de espera de una respuesta válidaCorre en: El lado emisorArranque: Con la bandera de fin de cualquier trama I/S con P/F=1Parada: Con la primera trama I completa con Ns correcto
Con la primera trama S con P/F=1Reintentos: 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 T2 más la modulación de la trama más larga
T3
Dependiente de la implementación
2009 Seminario de HDLC
Cátedra de Comunicaciones
En resumenEn resumen
Hemos visto cómo el protocolo HDLC opera con sus diversas características
SINCRÓNICOSINCRÓNICO
DE VENTANA DESLIZANTEDE VENTANA DESLIZANTE
CON CONEXIÓNCON CONEXIÓN
CONFIABLECONFIABLE
ORIENTADO A BITSORIENTADO A BITS
2009 Seminario de HDLC
Cátedra de Comunicaciones
¡Muchas Gracias por la atención!
¿Más preguntas?
2009 Seminario de HDLC
Cátedra de Comunicaciones