Está en la página 1de 49

Capa de Enlace de Datos

Propósito

„ Su objetivo es proporcionar un medio de


comunicación que parezca libre de errores
„ Para ello, se implementan diversos algoritmos de
detección y corrección de errores
„ Lo anterior se debe a que los dispositivos que
colocan los bits en el medio, así como el medio
mismo ocasionalmente inducen errores
„ Por otra parte, también intervienen los factores
externos

1
Propósito

„ Además de lo ya señalado, debe ofrecer una


interfaz bien definida a la capa de red,
estableciendo como se agrupan los bits en
“marcos”
„ Otra tarea desempeñada es regular el flujo
de datos, para no saturar a receptores
“lentos” con transmisores “rápidos”

Servicios

„ Normalmente se ofrecen tres tipos de


servicio:
‰ Servicio si acuse sin conexión: se emiten los
marcos sin pedir un acuse de recepción
‰ Servicio con acuse sin conexión: se emiten los
marcos, esperando una confirmación de su
llegada
‰ Servicio con acuse orientado a la conexión: se
establece una conexión antes de realizar
cualquier transmisión

2
Servicios

„ En el servicio orientado a la conexión,


existen tres fases en la transferencia:
establecimiento de la conexión, inicializando
variables; flujo de marcos; cierre de la
conexión, liberando variables, buffers, etc
„ Los diversos servicios se ajustan de acuerdo
a las características del medio

Marcos

„ En la capa de enlace de datos, los paquetes


enviados reciben el nombre de marcos
„ Los marcos sirven para tener un mayor control del
flujo de los bits, verificando por cada marco la
integridad de los bits
„ Para identificar los marcos, se han propuesto
diversos método como:
‰ Conteo de Caracteres
‰ Caracteres de inicio y fin, con relleno de caracteres
‰ Indicadores de inicio y fin, con relleno de bits
‰ Violaciones de codificación de la capa física

3
Conteo de Caracteres

„ Aquí se inserta un carácter al inicio que


indica cuantos caracteres contiene el marco
„ Su problema radica en que es fácil que se
dañe el carácter de conteo

3 0 1 2 6 0 1 2 3 4 5 3 0 1 1 0

Caracteres de Inicio y Fin

„ La técnica de caracteres de inicio y fin, con


relleno de caracteres se basa en el código
SCII, usando como caracteres especiales
DLE STX (data link escape, start of text) para
el inicio de un marco y, DLE ETX (end of
text) para la finalización de un marco
„ Como se trata de código ASCII, las
secuencias ya expuestas pueden
presentarse en la secuencia de datos

4
Caracteres de Inicio y Fin

„ Para resolver este problema, se suele


insertar otro carácter DLE, con lo cual, al
encontrarse dos DLE consecutivos, el
receptor sabrá que debe de eliminar uno de
ellos y, además, no se trata de caracteres de
inicio o fin
„ Por ello, esta técnica se denomina de relleno
de caracteres

Caracteres de Inicio y Fin con Relleno


de Caracteres

DLE STX Z DLE DLE ETX

Carácter de
relleno

DLE STX Z DLE DLE DLE ETX

DLE STX Z DLE DLE ETX

5
Indicadores de Inicio y Fin con
Relleno de Bits
„ En esta técnica, no se esta sujeto a un tamaño de
bits determinado, como en el código ASCII
„ El procedimiento consiste en insertar la secuencia
01111110 al inicio y fin de cada marco (conocida
como byte indicador)
„ Para evitar que esta secuencia se repita dentro de
los datos, si se encuentran 5 unos consecutivos, se
inserta automáticamente un 0. Con ello, el byte
indicador no se presentará en los datos

Indicadores de Inicio y Fin con


Relleno de Bits

11011111100011101111100

01111110110111110100011101111100001111110

11011111100011101111100

6
Violación de Codificaciones en la
Capa Física
„ Normalmente, en las redes locales se usa la
transición alto – bajo para representar 1 y
bajo – alto para representar un 0
„ Para enmarcar, se usan las transiciones alto
– alto o bajo – bajo
„ Éste uso de los códigos de violación es parte
del estándar LAN 802

Detección y Corrección de Errores

„ Para garantizar la correcta llegada de los


datos al receptor, se pide que este
retransmita un acuse de recibo
„ Sin embargo, no es suficiente con los acuses
de recibo, ya que un marco completo puede
perderse por algún problema que presente el
medio; en tal situación, el receptor no emitiría
ningún acuse de recibo negativo, con lo cual
aparentemente no existiría ningún problema

7
Detección y Corrección de Errores

„ Para solventar este problema, además se


introducen temporizadores, con los cuales, si
después de cierto tiempo no se recibe un marco o
acuse, se vuelve automáticamente a retransmitir
„ Los temporizadores tienen que ver con la latencia,
ya que se considera cuanto tiempo debe tomar, en
condiciones normales, para que se propague un
paquete, sea procesado por el receptor y retorne un
acuse de recibo

Detección y Corrección de Errores

„ Sin embargo, notemos que lo anterior puede


inducir a que un marco x sea procesado
varias veces por el receptor, por lo que se
deben incluir números de secuencia en los
mismos

8
Tipos de Errores

„ En general, se identifican dos tipos de error:


errores por ráfaga, errores aislados
„ Suponga que se envían 1000 bits (recuerde
que los bits entre computadoras se envían
por bloques) con una tasa de error del 0.001
‰ Si los errores son aislados, cada bloque
contendrá por lo menos un error
‰ Si los errores son en ráfaga de 100, solo uno o
dos bloques de cada 1000 contendrán errores

Detección y Corrección de Errores

„ Para detectar los errores, se pueden seguir


dos estrategias al momento de enviar la
información
‰ Incluir suficiente información redundante, con lo
cual se podrá deducir que es lo que se envió
(detección y corrección de errores)
‰ Incluir solo cierto grado de redundancia, con el
objetivo de determinar cuando un dato está
corrupto (detección de errores)

9
Técnicas de Detección y Corrección
de Errores
„ Paridad
„ Hamming
„ Códigos de Redundancia cíclica
„ Message Digest (MD5)
„ Retransmisión
„ Convolucionales

Notación

„ Un marco generalmente esta integrado por k


bits de datos y r bits redundantes o de
comprobación de error
„ Se llama palabra código a aquella que
consta de bits de datos y de comprobación
„ n=k+r

10
Notación

„ Distancia de Hamming:
‰ Número de bits en los que difieren dos palabras
código
‰ La distancia de Hamming se representa por Hd
„ Cuando se transmiten un conjunto de datos,
lo deseable es identificar de alguna manera
aquellos que ha sufrido daños en el viaje

Detección de errores

„ Una palabra código en sí tiene 2n posibles valores


„ Cualquier error o modificación que sufra una
palabra código, resultará en otra palabra código
diferente
„ Por lo anterior, solo se busca tomar 2k palabras
código válidas, en lugar de tomar las 2n palabras
que se podrían normalmente generar
⇒ Solo algunas palabras serán válidas

11
Detección de Errores

„ La distancia de Hamming sirve para


determinar cuantos bits son necesarios para
que una palabra válida se transforme en otra
palabra válida
„ La capacidad de detección y corrección de
errores depende de la distancia de Hamming
‰ Detección de x errores: DH ≥ x +1
‰ Corrección de x errores: DH ≥ 2x +1

Detección de Errores

„ Por ejemplo, el método más simple para


determinar si una palabra es valida o no,
consiste en llevar un control de la paridad
„ Consiste en agregar un 0 o 1 (información
redundante), dependiendo de la paridad
deseada

12
Control de Paridad

„ Existen dos formas básicas para el control de


la paridad:
‰ Paridad vertical o por carácter: se verifica la
paridad de una sola palabra
‰ Paridad longitudinal o transversal (en dos
dimensiones): se obtiene la paridad de varias
palabras, tanto horizontal como verticalmente

Paridad Vertical o por Carácter

„ Por ejemplo, suponiendo paridad par:

NUMERO NUMERO BIT PARIDAD


100110101 100110101 1
101110101 101110101 0

13
Paridad Vertical o por Carácter
Núm Caracteres (Paridad Impar)
Bit 1 2 3 4
1 0 0 0 0
2 0 1 1 0
3 1 1 1 0
4 0 0 0 0
5 1 1 0 1
6 1 1 1 1
7 0 0 0 0
8 1 1 1 1
Parida
1 0 0 ¿0?
d

Paridad Longitudinal

Núm Caracteres (Paridad Impar)


Bit 1 2 3 4 5 Paridad
1 0 0 0 0 0 1
2 0 1 1 0 1 1
3 1 1 1 0 1 0
4 0 0 0 0 1 0
5 1 1 0 1 0 1
6 1 1 1 1 1 0
7 0 0 0 0 0 1
8 1 1 1 1 1 0
Paridad 1 0 0 ¿0? 1

14
Código de Hamming

„ La información redundante es generada a


partir del cálculo:

r r
c = i •G
„ El vector c representa el código de Hamming
resultante, i el vector binario de entrada DkDk-
1...D2D1 (bits de información) y G, la matriz
generadora del código

Código de Hamming

„ Matriz generadora del código


G = [Ikxk, P]
donde:
‰ Ikxk es la matriz identidad de k x k
‰ P es la matriz que caracterizará el código de
dimensión k x (n - k)

15
Código de Hamming

„ Hamming propone una matriz P de


dimensión k x r, donde:
r = int{log2(k)+1}
„ Además:
n=k+r
„ De lo anterior, se puede señalar que el vector
c se forma de:
r
c = [ Dk ...D1 | Rr ...R1 ]

Código de Hamming

„ Los valores de la matriz P se obtienen de las


posiciones base dos de los bits de
información Dx después de haber insertado r
= n – k bits de redundancia Rx en las
posiciones potencias de dos

16
Código de Hamming

„ Ejemplo para 4 bits: D4D3D2D1


„ n = 4 + int {log2(4)+1} = 7
7 6 5 4 3 2 1
D4 D3 D2 R3 D1 R2 R1

1 0 0 0 | 1 1 1
0 1 0 0 | 1 1 0
G=
0 0 1 0 | 1 0 1
 
0 0 0 1 | 0 1 1

Código de Hamming

„ Por ejemplo, suponga D4D3D2D1 = 1101

1 0 0 0 | 1 1 1
0 1 0 0 | 1 1 0
r r
c = i ⋅ G = [1101]
0 0 1 0 | 1 0 1
 
0 0 0 1 | 0 1 1

c = [1101 | 010]
r

17
Código de Hamming

„ El código redundante a transmitir estaría


compuesto por los bits de información con
los bits de redundancia intercalados:
7 6 5 4 3 2 1
1 1 0 0 1 1 0
„ Una forma opcional de calcular los bits de
redundancia consiste en la suma módulo dos
de las posiciones donde los bits de
información son igual a uno

Código de Hamming

7 6 5 4 3 2 1
1 1 0 R3 1 R2 R1

Unos en las posiciones 7, 6 y 3:


1 1 1
+ 1 1 0
0 1 1

0 1 0

18
Código de Hamming

„ La detección / corrección de error es posible


mediante el cálculo del síndrome del código
recibido:

r r
s = c ⋅HT [
H T = PT | I n−k ]
• Si se obtiene que el vector s es cero, se
concluye que no hay error

Código de Hamming

„ Del ejemplo anterior: c = [ 1 1 0 1 | 0 1 0 ]

1 1 1
1 1 0 

1 0 1
 
r r T r 0 1 1
s = c⋅H = c = [0 0 0]
− − −
 
1 0 0
0 1 0
 
 0 0 1 

19
Código de Hamming

„ Una forma alternativa de calcular el síndrome es


sumar las posiciones binarias con bits iguales a 1,
incluyendo los 1’s de la redundancia:

7 6 5 4 3 2 1
1 1 0 R3 1 R2 R1
(0) (1) (0)

Unos en las 1 1 1
1 1 0
posiciones:
+ 0 1 1
7, 6, 3 y 2 0 1 0
0 0 0

Códigos de Redundancia Cíclica

„ Los códigos de Redundancia Cíclica son


ampliamente usados dentro de las Redes de
Computadoras
„ Se basan en el principio: “el desplazamiento
cíclico (end – around) de cualquier palabra
código de un código cíclico es otra palabra
código en el código”

20
Códigos de Redundancia Cíclica

„ En estos códigos se emplea la aritmética


polinomial módulo 2 sin acarreos; por tanto,
la suma como la resta son idénticas a la
operación OR exclusiva
„ Un código cíclico (n, k) está definido por su
polinomio generador
G(x) = g0 + g1x+ ... + gn-kxn-k
„ En redes como Ethernet, se emplean
polinomios generadores ya definidos

Códigos de Redundancia Cíclica

„ Cada coeficiente gk representa un 0 o un 1


binario en una cadena de r bits
‰ 0: cuando gk es igual a 0
‰ 1: cuando gk es igual a 1
„ La cadena de r bits se forma a partir del
coeficiente de mayor grado hasta el de
menor grado
„ El orden del polinomio lo determina el
exponente de mayor grado

21
Códigos de Redundancia Cíclica

„ Por ejemplo, para el polinomio


G(x)=x16+x15+x2+x+1
la secuencia de bits correspondientes es:
11000000000000111
„ El polinomio G(x) determina la forma en la
cual será modificado el mensaje original, que
llamaremos M(x), con el objetivo de añadirle
información redundante, con la cual se
verificará su integridad

Códigos de Redundancia Cíclica

„ Si el mensaje original constaba de k bits, y el


polinomio G(x) es de orden r, el marco
enviado ahora será de n = k + r bits
„ El objetivo es que los n bits sean
exactamente divisibles por el mismo
polinomio G(x) utilizado en el transmisor
„ Si es el caso, se dice que no hubo alteración
en los datos que se han transmitido

22
Códigos de Redundancia Cíclica

„ Para generar el código CRC de un mensaje


M(x) con k bits y un polinomio G(x) con grado
r, se procede como sigue:
‰ Anexar r bits 0 al final del marco M(x). Llámese a
este nuevo conjunto de bits B(x)
‰ Dividir B(x) entre G(x), usando la división módulo
2. Llámese Q(x) al cociente y R(X) al residuo
‰ Realizar la resta B(x) - R(x) = T(x) (aritmética
módulo 2)

Códigos de Redundancia Cíclica

„ T(x) es el patrón de bits que el emisor envía


al receptor
„ Del lado del receptor, se verifica que T(x) sea
divisible exactamente por G(x) (es decir, que
el residuo de la división sea cero). Si es el
caso, se dice que no ha sufrido alteración el
patrón de bits

23
Códigos de Redundancia Cíclica

„ Sea
‰ M(x) = 100110
‰ G(x) = x2 +1
„ Calcular el campo de suma de comprobación
„ Una vez calculado, verificar la integridad de
la información transmitida

Códigos de Redundancia Cíclica

„ Es claro que este método no detectara


errores que produzcan secuencias T(x)
divisibles entre G(x)
„ Para errores aislados de un bit, se podrán
detectar en cualquier caso si r >1
„ También tiene la cualidad de detectar errores
en ráfaga menores a r; si la ráfaga genera
r+1 errores, se detectará si esta es distinta
de G(x)

24
Códigos de Redundancia Cíclica

„ Normalmente se ha empleado 3 polinomios


para la detección de errores en las redes de
computadoras:
‰ CRC-12: x12+x11+x3+x2+x1+1
‰ CRC-16: x16+x15+x2+1
‰ CRC-CCITT: x16+x12+x5+1
„ Es importante notar que dichos polinomios
contienen como factor primo a x+1

MD5

„ MD5 es una técnica que permite obtener una


huella digital de una serie de datos de
entrada
„ Con la huella, se puede verificar la integridad
de los datos, es decir, comprobar que no
hayan sufrido alteración
„ Además, puede emplearse para la validación
de usuarios o procesos, aunque no es la más
usada, a comparación de otras técnicas
como RSA

25
Escenarios de Validación con MD5

„ Suponga el escenario de la contraseña de un


usuario a un servidor
‰ El usuario envía un ID de usuario al servidor
‰ El servidor envía en mensaje aleatorio al usuario
‰ El servidor y el sistema del usuario hacen un
cálculo MD5 del mensaje aleatorio y el password
del usuario
‰ El sistema del usuario envía el mensaje MD5, y
el servidor verifica que este coincida con el MD5
que ha obtenido. Si es el caso, se válida su
contraseña

Integridad de Mensajes con MD5

„ Para verificar la integridad de un mensaje, se


realiza lo siguiente:
‰ Se realiza el cálculo MD5 del mensaje
‰ Se envía al receptor el mensaje junto con la
huella
‰ El receptor saca la huella MD5 del mensaje
recibido y lo compara con la huella enviada por el
emisor. Si coinciden, los datos no ha sufrido
alteraciones en el trayecto

26
Algoritmo MD5

„ El algoritmo MD5 recibe un mensaje m de


cualquier tamaño, y de éste siempre obtiene
una serie de 128 bits, que es “única” para
cualquier mensaje
„ El algoritmo consta de 5 pasos, los cuales se
describen a continuación

Algoritmo MD5

1. El mensaje m es rellenado con n bits, de tal


manera que el nuevo mensaje, m’, tenga
una longitud menor a 64 bits comparado
con un múltiplo de 512 (bits).
„ Para ello, el primer bit de relleno es un “1” y
los restantes n-1 bits son “0”

27
Algoritmo MD5

2. La nueva longitud tras añadir los bits de relleno es


almacenada en una representación de 64 bits y
añadida al final del mensaje en forma de dos
palabras de 32 bits, yendo en primer lugar la que
contiene los bits menos significativos. Si la
longitud del mensaje fuera mayor que 264,
solamente se usan los 64 bits menos
significativos.
„ De esta manera, la longitud del mensaje es ahora
múltiplo de 512.

Algoritmo MD5

3. Se inicializan 4 buffers de 32 bits con los


siguientes valores hexadecimales:
„ A: 01 23 45 67
„ B: 89 ab cd ef
„ C: fe dc ba 98
„ D: 76 54 32 10

28
Algoritmo MD5

4. El mensaje m será procesado en bloques


m0, ..., mt-1, donde cada bloque mx consta
de 512 bits
„ Para ello, se crean 4 funciones auxiliares,
con 3 entradas de 32 bits y 1 salida de 32
bits, definidas como:
‰ F(X,Y,Z) = (X AND Y) OR ((NOT(X)) AND Z)
G(X,Y,Z) = (X AND Z) OR (Y AND (NOT(Z))
H(X,Y,Z) = X XOR Y XOR Z
I(X,Y,Z) = Y XOR (X OR (NOT(Z)))

Algoritmo MD5

„ Además, se crea una tabla de 64 elementos


T[1 ... 64] construida con la función seno,
siendo T[i] la parte entera de 4294967296 *
abs(sen(i))
„ El proceso inicializará analizando el primer
bloque m0 hasta mt-1. Cada bloque mx será
dividido en sub-bloques de 16 bits,
representados con mxj, que indica al j-ésimo
sub-bloque de 16 bits del bloque mx.

29
Algoritmo MD5

„ Parta cada j (1 ≤ j ≤ 32) de cada bloque mxj


se hace:
‰ Se almacenan las variables A, B, C, D
„ AA = A, BB = B, CC = C, DD = D
‰ Se crea una primera etapa donde la expresión
[abcd k s i] denota la operación a = b + ((a +
F(b,c,d) + mxj[k] + T[i]) << s)
‰ NOTA: mxj[k] representa el valor del k-ésimo bit, 0
o 1, del sub-bloque mxj

Algoritmo MD5

‰ Se realizan las operaciones siguientes


(secuencial): [ABCD 0 7 1], [DABC 1 12 2],
[CDAB 2 17 3], [BCDA 3 22 4], [ABCD 4 7 5],
[DABC 5 12 6], [CDAB 6 17 7], [BCDA 7 22 8],
[ABCD 8 7 9], [DABC 9 12 10], [CDAB 10 17 11],
[BCDA 11 22 12], [ABCD 12 7 13], [DABC 13 12
14], [CDAB 14 17 15], [BCDA 15 22 16]

30
Algoritmo MD5

‰ Usando ahora la expresión [abcd k s i] que denota


a = b + ((a + G(b,c,d) + mxj[k] + T[i]) << s), se
efectúan las 16 operaciones siguientes:
[ABCD 1 5 17], [DABC 6 9 18], [CDAB 11 14 19],
[BCDA 0 20 20], [ABCD 5 5 21], [DABC 10 9 22],
[CDAB 15 14 23], [BCDA 4 20 24],
[ABCD 9 5 25], [DABC 14 9 26], [CDAB 3 14 27],
[BCDA 8 20 28], [ABCD 13 5 29], [DABC 2 9 30],
[CDAB 7 14 31], [BCDA 12 20 32]

Algoritmo MD5

‰ En una tercera etapa, usando [abcd k s t] como a


= b + ((a + H(b,c,d) + mxj[k] + T[i]) << s), se
realizan las operaciones siguientes:
[ABCD 5 4 33], [DABC 8 11 34], [CDAB 11 16 35],
[BCDA 14 23 36], [ABCD 1 4 37], [DABC 4 11 38],
[CDAB 7 16 39], [BCDA 10 23 40], [ABCD 13 4
41], [DABC 0 11 42], [CDAB 3 16 43], [BCDA 6 23
44],
[ABCD 9 4 45], [DABC 12 11 46], [CDAB 15 16
47], [BCDA 2 23 48]

31
Algoritmo MD5

‰ En una cuarta etapa, [abcd k s t] denota la


operación a = b + ((a + I(b,c,d) + X[k] + T[i]) << s).
En base a esta, se realizan las operacione
siguientes:
[ABCD 0 6 49], [DABC 7 10 50], [CDAB 14 15
51], [BCDA 5 21 52], [ABCD 12 6 53], [DABC 3
10 54], [CDAB 10 15 55], [BCDA 1 21 56], [ABCD
8 6 57], [DABC 15 10 58], [CDAB 6 15 59],
[BCDA 13 21 60],
[ABCD 4 6 61], [DABC 11 10 62], [CDAB 2 15 63]
[BCDA 9 21 64]

Algoritmo MD5

„ En un proceso final, se actualizan las


variables siguientes:
‰ A = A + AA
B = B + BB
C = C + CC
D = D + DD
„ El proceso se repite para cada mx de forma
secuencial

32
Algoritmo MD5

5. La huella producida para el mensaje de


entrada queda en las variables A, B, C, D,
la cual se interpreta empezando con los bits
menos significativos de A y terminando con
los más significativos de D.
Independientemente de la longitud del
mensaje, la huella será de 128 bits

Algunos protocolos de la
Capa de Enlace de Datos

33
Generalidades

„ El flujo de datos en una red de computadoras


puede ser simplex, half – duplex, full – duplex
„ En los enlaces half y full, las entidades
pueden ser emisoras o receptoras de datos
⇒ Sincronía de eventos “emisión” y
“recepción”

Generalidades

„ Necesidades de políticas que establezcan


el control del uso del enlace
1. ¿quiénes lo usan?
2. ¿quién es el emisor?
3. ¿cuándo inicia la transmisión?
4. ¿cuándo termina?

⇒ Protocolos de nivel enlace

34
Control del Enlace

„ Los protocolos deben de contemplar:


‰ Empaquetado de la información
‰ Secuenciación de la información
‰ Contención
‰ Acuses de recepción
‰ Detección / corrección de errores
‰ Temporización
‰ Recuperación de errores

Formato de la Información

„ En la comunicación asíncrona, normalmente


se usa un formato orientado a caracteres
(bytes)
„ En la comunicación síncrona, se hace uso
los formatos orientados a bloque (por conteo)
y los orientados a bit

35
Protocolos de la Capa

„ Los protocolos de la capa de enlace de datos


se diseñan pensando en el tipo de
transmisión que será soportado: simplex, half
o full duplex
„ También se determina si se usará
transmisión síncrona o asíncrona
„ Dependiendo de lo anterior, los marcos se
formarán de caracteres, bloques o bits

Protocolo BISYNC

„ Protocolo orientado a carácter, half duplex


„ Hace uso de los siguientes caracteres de control:
‰ SYN: línea activa y desocupada
‰ DLE: carácter de escape al enlace de datos (Data Link
Escape)
‰ SOH: Inicio de la cabecera (Start of Header)
‰ STX: Inicio del texto (Start of Text)
‰ ETX: Fin del texto (End of Text)
‰ EOT: Fin de la transmisión (End of Transmission)

36
Protocolo BISYNC

SY SY SO <header ST <datos <error


ETX
N N H > X > control>

SY <error
DLE STX <datos> DLE ETX
N control>

Protocolo KERMIT

„ Protocolo orientado a carácter, del tipo simplex


„ Caracteres de control:
‰ SOH: Inicio del Encabezado
‰ LEN: Longitud paquete (35 a 126) exceso de 32
‰ SEQ: Número de trama (exceso de 32 mod 64)
‰ FCS: CRC
‰ CR: Carriage Return

SO SE TYP FC
LEN <datos> CR
H Q E S

37
Protocolo KERMIT

„ El campo correspondiente a TYPE, determina el tipo


de trama:
‰ S: send initiation (parámetros)
‰ F: nombre del archivo
‰ D: Datos de archivo
‰ Z: Fin de archivo
‰ B: Fin de transmisión
‰ Y: confirmación de llegada
‰ N: confirmación negativa de llegada
‰ E: error fatal

Protocolos Orientados a Bloque

„ Mayor transparencia de datos


„ El encabezado contiene toda la información
sobre la longitud del paquete de información
⇒ Orientado al conteo de caracteres

38
Protocolos Orientados a Bloque

SY BC <error
N <datos> CR
N C control>

„ El carácter BCC sirve para indicar la posición


del campo de conteo de datos

Protocolos Orientados a Bit

„ Ampliamente usado en la actualidad


„ Se utilizan banderas en lugar de caracteres de
control. Por ejemplo, la bandera 0 111 111 0
„ Para evitar confusión con la bandera, después de 5
1’s consecutivos de agrega un cero
„ La longitud de los campos de control es fija

0111111 <header <error


<datos> 01111110
0 > control>

39
Control de Flujo

„ Independientemente del empaquetado, se


requiere de mecanismos que controlen el
flujo de las tramas:
‰ Reglas sobre la petición y envío de la información
‰ Reglas sobre los acuses de recibo y de
retransmisión

Control de Flujo

„ En protocolos asíncronos, se realiza de dos


formas:
‰ RTS / CTS (Request to send / clear to send):
Activación y desactivación de los circuitos de
datos mediante líneas de control independientes
‰ XON / XOFF: envío de caracteres de control para
habilitar o deshabilitar el envío de información

40
Control de Flujo

„ En un protocolo síncrono, el envío de


mayores cantidades de datos requiere un
control mayor:
‰ Encabezados con información de control (número
de paquete N(s))
‰ Acuses de recibo positivos (ACK) o negativos
(NAK) de las tramas enviadas

41
Control de Flujo

Control de Flujo

„ Reglas específicas para el envío de ACK o


de NAK dependiendo de la temporización
„ Los acuses de recibo deben permitir la
adecuada secuenciación de las tramas
„ Empleo generalizado del Automatic Repeat
Request (ARQ): el acuso de recibo indica el
número de la trama que se espera

42
Control de Flujo

„ Diversas estrategias:
‰ Idle ReQuest (stop - wait): Envío de trama N(S)
y acuse de recepción N(R), donde N(S) = N (R).
Ésta estrategia se orienta a la comunicación half
– duplex
‰ Continuous RQ: Envío constante de tramas sin
espera inmediata de acuse de recepción (full -
duplex).

Control de Flujo

„ Dentro de Continuous RQ, se encuentran:


‰ Selective Reject
‰ Go – Back – N
‰ Inclusive Acknowledge
‰ Piggy Back

43
Algoritmos de Parada y Espera

„ En los algoritmos de parada y espera (stop and


wait), el emisor envía un marco y no envía otro
hasta recibir una confirmación del que ha enviado
„ Se requiere una comunicación full duplex, aunque
los datos (de usuario) solo viajan en un sentido
„ Por lo anterior, se pueden implementar sobre
medios físicos semi – duplex
„ Existe el problema de la pérdida de los acuses, que
puede inducir a la recepción de múltiples marcos
hasta el bloqueo total del protocolo

Solicitud Automática de Repetición


(ARQ)
„ Para identificar marcos repetidos, se ha
optado por añadir un número de secuencia a
los marcos, los cuales pueden ser de un bit
„ Con ello, el receptor sabe que marco debe
de llegar a continuación (n → n+1)

44
Algoritmos de Respuesta Continua

„ En estos algoritmos, se aprovecha mejor el


medio
„ Los marcos pueden ser identificador por
medio del campo de tipo, que indica si es un
marco de control o de datos
„ Notemos que enviar un marco solo portando
un acuse, es un esquema ineficiente

Algoritmos de Respuesta Continua

„ Para lograr mayor eficiencia, se propuso


retardar el acuse, tratando de enviarlo en
marcos de salida (en el campo ack)
„ La técnica anterior, conocida como
incorporación (piggybacking), tiene el
problema de que los temporizadores pueden
acabarse si no se plantea bien cuanto tiempo
se puede retener el acuse

45
46
47
Protocolos de Ventana Corrediza

„ Los protocolos de ventana corrediza tienen


una gran inmunidad a los fallos
„ En estos protocolos, cada marco tiene un
número de secuencia desde 0 hasta un
número máximo predefinido
„ Por lo general, dicho número máximo se
representa por 2n-1, el cuál puede ser
acomodado en un campo de n bits

48
Protocolos de la Capa de Enlace de
Datos
„ HDLC
„ SLIP
„ PPP
„ TC DE ATM

49

También podría gustarte