Anda di halaman 1dari 34

Ctedra de Comunicaciones

2009
Seminario de HDLC
Seminario de HDLC


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

Ctedra de Comunicaciones
2009
Seminario de HDLC
El protocolo de control de enlace de datos de alto nivel, conocido
por sus iniciales en ingls HDLC, tiene un largo historial y su raz
se encuentra en varios estndares con pocas variantes.
Porqu?

PORQUE HDLC ES UN PROTOCOLO MADURO,
ROBUSTO Y ESTABLE, MUY FLEXIBLE Y CON
UN EXCELENTE CONTROL DE FLUJO PARA LA
TRANSMISIN SINCRNICA

Veamos algo de sus orgenes y actualidad

Ctedra de Comunicaciones
2009
Seminario de HDLC
Evolucin 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
Ctedra de Comunicaciones
2009
Seminario de HDLC
Caractersticas distintivas
HDLC tiene las siguientes caractersticas que lo definen:

Es un protocolo

SINCRNICO
DE VENTANA DESLIZANTE
CON CONEXIN
CONFIABLE
ORIENTADO A BITS


Ctedra 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,
slo cumple funciones de capa 2 y est diseado con ese fin
Presta todos los servicios esperables segn el modelo OSI
El protocolo presta a la capa 3 los servicios de entramado, control de flujo y
deteccin 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 explcito entre
banderas hexadecimales 7E, generando transparencia mediante la tcnica de
Zero Insertion despus 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 Correccin de errores
Controla el flujo
Tiene varias tramas de control y ventana corrediza con 2 mdulos estndares
elegibles en la implementacin: 8 (normal) o 128(extendido); algunas
implementaciones tienen adems 16 (intermedio) y 32768 (sper)
Ctedra de Comunicaciones
2009
Seminario de HDLC
Cualidades del protocolo: fortalezas
Establece el modo confiable con muchas alternativas.
Bajo ciertas condiciones, tambin acepta el modo no
confiable aunque slo en ciertas implementaciones
Flexible
Tiene una etapa de establecimiento del enlace en la
que permite negociar distintas condiciones de trabajo
para la comunicacin y para la recuperacin de
situaciones adversas
Verstil
Las caractersticas de los ETD y de las condiciones de la
comunicacin son soportados en alguno de sus dos
modos de trabajo, peer-to-peer o maestro-esclavo,
para conservar la sincrona de enlace en modo
conectado sea dplex o semidplex
Adaptable
Ctedra de Comunicaciones
2009
Seminario de HDLC
Cualidades del protocolo: qu se le objeta
Requiere mucho expertise en la configuracin. Aunque
tiene buenos defaults, con ellos puede ser ineficiente
Complejo
Tiene algo de overhead en la trama, pero adems
tiene mucho overhead de trfico para gestionar el
enlace en canales semidplex
Subptimo
A pesar de su madurez y fortaleza, no es todo lo
robusto que se podra esperar y puede tener deadlocks
Algo frgil
Ctedra de Comunicaciones
2009
Seminario de HDLC
Estructura de la trama
La estructura mostrada corresponde a M=8
Para otros mdulos cambia el campo Control
Ctedra de Comunicaciones
2009
Seminario de HDLC
Estructura de la trama




Flag
Existe siempre
Enmarca la trama al inicio
Tienen el patrn nico 7EH = 01111110
Long
1B
Flag
Existe siempre
Enmarca la trama al final
Tienen el patrn nico 7EH = 01111110
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
Direccin
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
Existe siempre
Identifica tipo de trama de tres posibles
Contiene numeracin 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
Ctedra de Comunicaciones
2009
Seminario de HDLC
Estructura del campo Control
Este esquema es M=8 => Nros Ns y Nr de 3b, para otros mdulos 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 mdulo 8 3 bits mdulo 8
tips:
Trama S
1 0
0
Nada
1
Sondeo
Nr
00 RR = ack
01 RJ = nack
10 RNR = ack
11 SRJ = nack
3 bits mdulo 8
Trama U
1 1
P/F
Modificador Indicador
Ctedra de Comunicaciones
2009
Seminario de HDLC
Estructura del campo Control
Este esquema es M=8 => Nros Ns y Nr de 3b, para otros mdulos 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
1 0
0
Nada
1
Sondeo
Nr
00 RR = ack
01 RJ = nack
10 RNR = ack
11 SRJ = nack
3 bits mdulo 8
Trama U
1 1
P/F
Modificador Indicador
Ctedra de Comunicaciones
2009
Seminario de HDLC
Estructura del campo Control
Trama I
0
Ns
0
Interm.
1
Final
Nr
Ns: N de envo
(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 enva, desde 0 a Ns mximo y llamando a
Ns mx 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) segn el
mismo esquema que Ns

Esta accin de cargar
un acuse de recibo en
una trama de info se
llama piggyback
Este bit indica si esta trama que se enva es intermedia
o la ltima disponible.
ltima en buffer de envo o ltima de la ventana, P/F=1
P/F=1 acta como bit de sondeo (Polling) al otro lado
Ctedra de Comunicaciones
2009
Seminario de HDLC
Estructura del campo Control
Trama S
1 0
0
Nada
1
Sondeo
Nr
00 RR = ack
01 RJ = nack
10 RNR = ack
11 SRJ = nack
Indicador
RR y RNR son Acuse de Recibo explcitos
(+ack, por positive acknowledge, o ack)
de todo lo recibido hasta Nr - 1
Al mismo tiempo, P/F=1 hace sondeo.
RJ es una negacin 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 negacin de acuse selectivo
(nack, dem anterior) indicando con Nr
el N de trama que especficamente 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 direccin del flujo.
Nr: N a recibir
(Number to Receive)
Ctedra 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)
Inicializacin
Modo y
Aceptacin
Identificacin

Desconexin

Control de
Flujo Urg
Informacin
Ctedra de Comunicaciones
2009
Seminario de HDLC
Estructuras tpicas de tramas
7E Addr Ctrl FCS FCS 7E Data
Trama I (informacin): 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 7E Data
Trama U (no numerada): C o R con datos: longitud L bits
Ctedra de Comunicaciones
2009
Seminario de HDLC
Estructura de la trama
011111100000000001010011010011101001011001110011111011001101101011101111110
Veamos una trama cualquiera, mostrada como un string binario que est
siendo transmitido y es observado.
Asumimos la convencin arbitraria de que se transmite primero el
bit de ms a la izquierda, pero los representamos como los leemos
tip:
Veremos cmo es la lgica 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:
Ctedra de Comunicaciones
2009
Seminario de HDLC
Estructura de la trama
0100111000101000111111001011001110011111
Capa 3
Capa 2
00000000010100110100111000101000111110100101100111001111100110011011010111
Se agrega el
CRC como FCS
0000000001010011010011100010100011111010010110011100111110
Se agregan campos
Direccin y Control
010011100010100011111010010110011100111110
Se hace Zero Insertion
011111100000000001010011010011100010100011111010010110011100111110011001101101011101111110
Se agrega
la bandera
Se agrega
la bandera
Capa 2
Capa 1
Manipulacin del string en el envo
Se recibe como carga til
Ctedra de Comunicaciones
2009
Seminario de HDLC
0000000001010011010011100010100011111010010110011100111110
Estructura de la trama
0100111000101000111111001011001110011111
Capa 3
Capa 2
0110011011010111
011111100000000001010011010011100010100011111010010110011100111110011001101101011101111110
Capa 2
Capa 1
Manipulacin del string en la recepcin
0110011011010111
Es para este ETD
En secuencia
CRC OK
Ctedra 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
parmetros segn capacidades (XID/XID)
Conexin
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 segn las
reglas del modo fijado (I, RR, RNR) [RJ/SRJ]
Desconexin
Durante esta etapa los ETD se desconectan ya sea
mediante solicitud (RD) o indicacin (DISC) y se
informan que quedan desconectados cuando se
informan el estado (DM)
Ctedra de Comunicaciones
2009
Seminario de HDLC
Conexin
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
parmetro(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
dems recursos. El segundo XID deja los parmetros negociados por la regla del mnimo
Ctedra de Comunicaciones
2009
Seminario de HDLC
Controlando el flujo con RR (en MNR)
Un RR usado como
acuse explcito +ack
confirma cuando no
hay datos en buffer
de Tx hasta (Nr1).
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 envo, y se
recibe un RR, se enva
un ack (RR o RNR) sin
dilaciones. Esto sirve
para mantener el flujo
en el enlace y tambin
la sincrona.
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 estn fuera de escala
Ctedra 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.
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 estn fuera de escala
El ejemplo corresponde a
Modo Normal de Respuesta
Ctedra 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 envo, se emite un
RNR y ante el prximo 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 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 estn fuera de escala
El ejemplo corresponde a
Modo Normal de Respuesta
Necesita
el 6 otra
vez!
Ctedra 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
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 slo
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
Ctedra de Comunicaciones
2009
Seminario de HDLC
Resumen de los principios del intercambio de Info
El nmero Ns es el N DE SECUENCIA DE ENVO y con ese nmero un
ETD le informa al otro qu nmero de trama est enviando. Debe
estar dentro de la ventana de Tx
El nmero Nr es el N DE SECUENCIA DE RECEPCIN y con l un ETD
le informa al otro qu nmero de trama espera. Debe estar dentro
de la ventana de Rx
Cada ETD tiene dos ventanas corredizas, una de transmisin y una de
recepcin, y pueden o no ser iguales, pero son recprocas
Se hace acuse de recibo explcito 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 implcito de hasta Nr-1 con una trama I indicando qu
se espera recibir a continuacin usando Nr (piggyback)
Ctedra de Comunicaciones
2009
Seminario de HDLC
El proceso de recepcin 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
Enva a Red
Limpia recursos
Genera ack
NO
NO
NO NO
SI
SI
SI
SI
Pasa a modo
Transmisin
Ctedra de Comunicaciones
2009
Seminario de HDLC
Evitacin del deadlock
Las distintas implementaciones usan temporizadores para evitar los
deadlocks que pueden producirse por falta de robustez del protocolo
La expiracin 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 implementacin en
cada nodo, y se negocian en un XID
Dependiente de la implementacin
Ctedra de Comunicaciones
2009
Seminario de HDLC
Evitacin del deadlock
Implementacin
ms plana
Un solo temporizador para limitar el tiempo de idle
(ocioso) del enlace. De este modo, la lnea no puede
estar ociosa ms tiempo que el indicado por T. Si no
hay datos en el buffer de envo y dentro de ventana
de Tx, se enva RR a las T unidades de tiempo
Tres temporizadores para evitar los deadlocks: T
1

para cerrar la ventana de recepcin 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 lnea.
Los valores son configurables y negociables con XID
Implementacin
ms compleja
Dependiente de la implementacin
Ctedra de Comunicaciones
2009
Seminario de HDLC
Trabajando con tres temporizadores
Ficha tcnica

Nombre: Temporizador de Cierre de ventana
Propsito: 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

Excepcin: No tiene

No corre: Cuando se reciben tramas S o U

Clculo: Puede ser arbitrariamente mayor que la modulacin de la
trama ms larga y depende de la tasa de arribo de tramas
T
1
Dependiente de la implementacin
Ctedra de Comunicaciones
2009
Seminario de HDLC
Trabajando con tres temporizadores
Ficha tcnica

Nombre: Temporizador de Piggyback
Propsito: 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

Excepcin: No tiene

No corre: Cuando hay tramas listas (aunque sea 1) esperando para Tx
Cuando el sondeo es explcito (trama S con P/F=1)

Clculo: Debera ser arbitrariamente mayor que el perodo de la tasa
de arribo de paquetes
T
2
Dependiente de la implementacin
Ctedra de Comunicaciones
2009
Seminario de HDLC
Trabajando con tres temporizadores
Ficha tcnica

Nombre: Temporizador de Time-out
Propsito: Limitar el tiempo de espera de una respuesta vlida
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: Segn definicin en la implementacin y XID

Excepcin: En lugar del reintento puede generar un reset

No corre: Cuando se envan tramas I con P/F=0, o tramas U

Clculo: Debe ser arbitrariamente mayor que la suma de dos
latencias, ms T
2
ms la modulacin de la trama ms larga
T
3
Dependiente de la implementacin
Ctedra de Comunicaciones
2009
Seminario de HDLC
En resumen
Hemos visto cmo el protocolo HDLC opera con sus diversas
caractersticas


SINCRNICO
DE VENTANA DESLIZANTE
CON CONEXIN
CONFIABLE
ORIENTADO A BITS



Ctedra de Comunicaciones
2009
Seminario de HDLC





Muchas Gracias por la atencin!


Ms preguntas?
Ctedra de Comunicaciones
2009
Seminario de HDLC

Anda mungkin juga menyukai