Redes I Unidad 4
A. de S. Cristian García García
HDLC Con esta presentación veremos el último protocolo que vamos a estudiar, relativo a las funciones principales del nivel de enlace del modelo de referencia OSI, que tienen como objetivo garantizar una comunicación libre de errores y gestionar del flujo de los datos entre los nodos de la misma red. Este protocolo es el HDLC.
HDLC El protocolo HDLC (High Level Data Link Control – Control del Enlace de Datos de Alto Nivel) es un protocolo propuesto por ISO (International Organization for Standardization – Organización Internacional de Estandarización ), basado en el protocolo SDLC (Synchronous Data Link Control – Control de Enlace de
Datos Síncrono) desarrollado por IBM. Después de desarrollar SDLC, IBM lo propuso a la ANSI para su estandarización en Estados Unidos y la ISO para su aceptación internacional. ANSI tomó las especificaciones del SDLC y construyó las suyas propias con el nombre ADCCP ( Advanced Data Communication Control Procedure – Procedimiento de Control de Comunicación de Datos Avanzado). Por su parte, la ISO propuso el protocolo HDLC. Esta es la razón por la que HDLC es un protocolo, derivado del SDLC.
HDLC Posee 3 tipos de estaciones: Estación primaria: es la estación que controla el
funcionamiento del enlace mediante el envío de tramas denominadas “órdenes”. Estación secundaria: funciona bajo el control de la estación
primaria y responde a ésta mediante tramas denominadas “respuestas”.
Estación combinada: puede generar tanto “órdenes” como
“respuestas”.Es una mezcla de las dos anteriores
Las posibles configuraciones del enlace son: No balanceada: está formada por una estación primara
y una o más secundarias. Con esta configuración podríamos trabajar en modo NRM y modo ARM. Balanceada: consiste en dos estaciones combinadas. Esta configuración sería la utilizada en el modo ABM, comunicaciones de igual a igual. Con ambas configuraciones se permite tanto la transmisión “full-dúplex” como “semidúplex”.
HDLC El protocolo HDLC propone tres modos de funcionamiento o de operaciones posibles para la interconexión de emisor y receptor: NRM:Normal Response Mode ABM: Asychronous Balanced Mode ARM: Asynchronous Response Mode
HDLC Modos de operación Modo NRM, Normal Response Mode. El modo de respuesta normal requiere que la estación secundaria o
esclava reciba un permiso explícito de la primaria o maestra para que pueda comenzar la transferencia de datos, la cual puede constar de una o más tramas. La comunicación siempre se efectúa entre una estación secundaria y una primaria, nunca entre dos secundarias. Una vez se ha transmitido la última trama, la estación secundaria debe esperar a la concesión de otro permiso para volver a transmitir. El modo NRM es ampliamente utilizado en las conexiones multipunto.
HDLC Modo ARM, Asynchronous Response Mode.
El modo de respuesta asíncrona permite a la estación secundaria comenzar una transmisión de datos sin recibir explícitamente un permiso de una estación primaria. Sin embargo, ésta tiene toda la responsabilidad sobre el control, la corrección de errores y la conexión y desconexión del enlace. El modo ARM es muy poco utilizado en la actualidad.
HDLC Modo ABM, Asychronous Balanced Mode. El modo asíncrono balanceado
utiliza para sus transmisiones dos estaciones equivalentes, no hay ninguna privilegiada. Es propio de las comunicaciones de igual a igual (concepto peer to peer ) y, por tanto, es el modo más utilizado en las redes de área local. Hay que aclarar que cuando utilizamos el término asíncrono para catalogar un modo de transmisión de tramas no nos estamos refiriendo al modo de transmisión físico. Los modos asíncronos para las tramas se refieren al hecho de que la estación transmisora no necesita permiso previo de otra estación para iniciar la comunicación.
HDLC Formato de las tramas HDLC utiliza una trama semejante a la de cualquier protocolo orientado a bit. Todas las tramas deben comenzar y acabar con una bandera señalizadora de 8 bits, en concreto se trata de la secuencia “01111110”. Entre estas dos banderas estará contenida la trama.
HDLC Los campos de la trama son los siguientes:
Dirección:
Este campo codifica con 1 byte la dirección de la estación secundaria que ha transmitido o que va a recibir la trama. Esto es, el origen de una “respuesta” o el destino de una “orden”. Este campo es importante sobre todo en el modo de operación ABM para saber qué dos estaciones combinadas se están comunicando (enlace punto a punto).
Formato de la trama Hdlc
Control:
El contenido de este campo depende del tipo de trama y contiene los datos necesarios para el control del enlace, por ejemplo: las peticiones y respuestas, los números de secuencia de tramas para las ventanas del emisor y del receptor, etc.
Formato de Trama
Información:
El campo de información contiene los datos de usuario. No todas las tramas tienen este campo, depende de las funciones que la trama tenga asociadas, lo cual se indica en el campo de control de la propia trama. Su longitud es, por tanto, variable (aunque debe ser múltiplo entero de 8 bits).
Formato de trama
FCS, Frame Check Sequence :
(Secuencia de Comprobación de la Trama) . Este es el
campo de control de errores. Utiliza la redundancia cíclica (CRC) para la detección de los posibles errores de transmisión en los campos de dirección, control e información.
HDLC En todos estos campos de la trama no pueden aparecer secuencias de más de cinco unos. La bandera es detectada por los receptores en caso de violar esta regla, puesto que constan de secuencias de seis unos consecutivos. Existen otras configuraciones prohibidas que se utilizan en HDLC. La secuencia de más de quince unos seguidos se utiliza para indicar que el canal está inactivo. Sin embargo, si se codifican entre siete y quince unos consecutivos se entenderá que hay una interrupción en la transmisión.
HDLC El campo de control en HDLC Vamos a especificar con mayor precisión las funciones del campo de control, que es esencial para el gobierno del enlace, puesto que define la función de la trama. Dependiendo de su formato, las tramas se pueden clasificar en • • •
tramas no numeradas tramas supervisoras tramas de transferencia de información .
HDLC Tramas de información La trama de transferencia de información se utiliza para producir el transporte de los datos de usuario (en el campo de “Información” de la trama) entre dos dispositivos terminales de la red. Estas tramas pueden ser confirmadas en el destino. Además, pueden tener otras funciones añadidas, como la de interrogar a otras estaciones ( polling ) sobre sus necesidades de transmisión. Las estaciones o nodos de la red reconocen una trama de información fijándose en la estructura del campo de control, que comienza con un “0”. Posteriormente se codifica el número de secuencia de la ventana del emisor y, a continuación, se transmite un bit (el quinto) llamado de Pregunta/Final (P/F) o Poll/Final. Este bit se utiliza para realizar el sondeo. Se usa como P para indicar que una estación está invitando a otra a que le envíe sus datos, es decir, le está enviando una “orden” para la que espera una “respuesta”. El receptor de esta “orden” debe responder con una “respuesta” con el bit P/F como F.
HDLC Mediante 3 bits se codifican (de 0 a 7, hasta 8 valores posibles) el número de secuencia del emisor [N(S)] y el número de secuencia del receptor [N(R)]. Estos números identifican el número de secuencia de la trama que se envía y de la trama que se espera recibir ,
respectivamente. Sirven para controlar que la secuencia de las tramas es correcta en el receptor y en éste se emplean para indicar cuál fue la última trama correctamente recibida. Es un método muy cómodo para detectar pérdidas de tramas.
HDLC Tramas de supervisión Las tramas supervisoras efectúan fuciones de control, tales como los bloqueos y desbloqueos de las transmisiones, la confirmación de las tramas recibidas, las peticiones de retransmisión, etc. El campo de control de las tramas de supervisión comienza siempre con “10”. A continuación, se codifica el tipo de trama mediante el código de supervisión (S).
Tramas de supervisión Existen cuatro subtramas identificadas por el campo S de campo de control (del tipo de supervisión):
00 01 10 11
RR (Receive Ready) REJ (Reject) RNR (Receive Not Ready) SREJ (Selective Reject)
HDLC Tipo 0: Éstas se corresponden con confirmaciones de tramas. Técnicamente se llaman tramas RR (Receiver Ready ) o de receptor listo. Se utilizan paraTipo 0. Se utilizan paraconfirmar la trama y señalizar la siguiente trama esperada . Se envían cuando el
receptor no necesita enviar tramas de datos al emisor con las que incluir la confirmación, necesitándose una trama específica para esta confirmación: la trama RR. Tipo 1. Es de asentimiento negativo o rechazo. Técnicamente se llama REJ (REJect ).
Se utiliza para informar de que se ha recibido una trama con error o bien que no se ha recibido una trama que se esperaba y ha vencido el temporizador. Con esta trama se solicita la retransmisión de todas las tramas pendientes de confirmación.
Tipo 2. Indica que el receptor no está listo para recibir. También se llama RNR (Receiver Not Ready ) y sirve para indicar al emisor que suspenda la transmisión
momentáneamente, mientras se resuelven los problemas que originaron la parada en el receptor. Cuando el receptor se encuentra de nuevo en condiciones de recibir datos, envía al emisor una trama supervisora RR. Tipo 3. Con este tipo de trama supervisora se solicita al emisor que reenvíe una trama
concreta, es decir, es una trama que utiliza técnica de rechazo selectivo. La trama recibe el nombre de SREJ o rechazo selectivo (Selective Reject ).
HDLC Tramas no numeradas Las tramas no numeradas también tienen funciones de control. Se utilizan para el gobierno del enlace en todo lo que se refiere a la conexión y desconexión. Algunas de ellas llevan algún tipo de datos en el campo de “información” de la trama. El campo de control de una trama no numerada comienza con la combinación “11” y es el que más difiere en los diferentes tipos de protocolos HDLC. El tipo de trama no numerada se codifica con cinco bits: dos (1ª M) para el código de trama y tres más (2ª M) para el modificador, con lo que aparecen 2^5 = 32 posibilidades. Ningún protocolo actual agota todas ellas. Aquí comentaremos las más comunes.
HDLC Las tramas no numeradas pueden clasificarse del siguiente modo:
Tramas para seleccionar el modo de operación. Sirven para
informar al receptor del modo de operación en que debe situarse para efectuar la comunicación.
La trama SNRM (Set Normal Response Mode) se utiliza para dejar al receptor en el modo NRM. La SARM (Set Asychronous Response Mode) pone al receptor en el modo ARM
La trama SABM (Set Asychronous Balanced Mode) lo pone en modo ABM.
Tramas para ordenar la desconexión. Para esto se utiliza la trama DISC (DISConnect ). Informa al
receptor de que se producirá una desconexión temporal del equipo.
Tramas no numeradas CÓDIGO 00001 11011 11000 11010 11100 11110 00000 00110 00010 10000 00100 11001 11101 10001
ORDEN SNRM SNRME SARM SARME SABM SABME UI DISC SIM UP RSET XID
RESPUESTA
DM
UI UA RD RIM
XID FRMR
HDLC Confirmación de trama no numerada .
La trama UA (Unnumbered Acknowledge) se utiliza para que el receptor avise al emisor de que recibió una trama no numerada que ha sido aceptada, es decir, representa la confirmación de una trama no numerada. Confirmación negativa de la selección del modo de operación o trama DM (Disconnected Mode). Cuando una trama de selección de modo de operación (SNRM, SARM o SABM) llega al receptor, éste comprueba si es posible o no ponerse en el modo indicado por la trama. Si puede ponerse, se envía una trama UA, y si no puede, una DM. Confirmación de rechazo de trama. La trama FRMR (FRaMe Reject ) indica que ha llegado una trama correcta desde el punto de vista del chequeo de errores pero sintácticamente incorrecta, es decir, fuera de secuencia. Tras una trama FRMR se finaliza la transmisión y es necesario inicializarla de nuevo mediante una trama SABM, por ejemplo, para establecer de nuevo el modo ABM. Una trama FRMR llevaría en su campo de “información” el motivo por el que la trama fue incorrecta y en el campo de “control” una copia del campo de “control” de la trama que generó el error.
HDLC Fases del protocolo HDLC La comunicación de datos en el nivel de enlace entre dos estaciones utilizando el protocolo HDLC debe seguir las siguientes fases:
Iniciación o establecimiento de la conexión . Esta fase presupone la conexión
física a través de un medio de transmisión propio del nivel físico. Consiste en el establecimiento de una conexión lógica entre emisor y receptor en el que se acuerdan los parámetros de la comunicación, ponen a cero sus variables de estado de comunicación, ajustan sus ventanas de comunicación, etc. Todo esto se suele realizar mediante tramas no numeradas (SABM, SNRM).
Transporte, transmisión o transferencia de datos . En esta fase se produce el
intercambio de datos entre emisor y receptor, incluyendo tramas de información, de supervisión y no numeradas, que regulan la comunicación.
Desconexión del circuito. Una vez concluida la transmisión de datos debe
procederse a la liberación de los recursos utilizados para la comunicación en el emisor y en el receptor. Para ello, se utiliza la trama de desconexión DISC.
HDLC Control de flujo mediante ventana deslizante
HDLC utiliza como control de flujo la técnica de la “ventana deslizante” o “sliding window”. Gracias a este tipo de control de flujo, se puede realizar un envío continuo (o pipelining ) de tramas, sin tener que parar cada vez que se envía una trama hasta recibir su confirmación, sino que se pueden enviar varias tramas de información seguidas y después, una sola confirmación para todas ellas. Normalmente se indica la siguiente trama que se espera recibir, confirmando así todas las anteriores. Si hubiera algún error o se perdiera una trama y pidiéramos su retransmisión, se podría hacer de dos formas:
Control de flujo mediante ventana deslizante
Con retransmisión selectiva (SREJ en HDLC), pidiendo sólo la retransmisión de la trama perdida o dañada. Con retransmisión no selectiva (REJ en HDLC), pidiendo la retransmisión tanto de la trama dañada o perdida, como de todas las enviadas posteriormente a ella.