Professional Documents
Culture Documents
Propsito
Su objetivo es proporcionar un medio de comunicacin que parezca libre de errores Para ello, se implementan diversos algoritmos de deteccin y correccin 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, tambin intervienen los factores externos
Propsito
Adems de lo ya sealado, debe ofrecer una interfaz bien definida a la capa de red, estableciendo como se agrupan los bits en marcos Otra tarea desempeada es regular el flujo de datos, para no saturar a receptores lentos con transmisores rpidos
Servicios
Servicio si acuse sin conexin: se emiten los marcos sin pedir un acuse de recepcin Servicio con acuse sin conexin: se emiten los marcos, esperando una confirmacin de su llegada Servicio con acuse orientado a la conexin: se establece una conexin antes de realizar cualquier transmisin
Servicios
En el servicio orientado a la conexin, existen tres fases en la transferencia: establecimiento de la conexin, inicializando variables; flujo de marcos; cierre de la conexin, liberando variables, buffers, etc Los diversos servicios se ajustan de acuerdo a las caractersticas 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 mtodo como:
Conteo de Caracteres Caracteres de inicio y fin, con relleno de caracteres Indicadores de inicio y fin, con relleno de bits Violaciones de codificacin de la capa fsica
Conteo de Caracteres
Aqu se inserta un carcter al inicio que indica cuantos caracteres contiene el marco Su problema radica en que es fcil que se dae el carcter de conteo
3 0 1 2 6 0 1 2 3 4 5 3 0 1 1 0
La tcnica de caracteres de inicio y fin, con relleno de caracteres se basa en el cdigo 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 finalizacin de un marco Como se trata de cdigo ASCII, las secuencias ya expuestas pueden presentarse en la secuencia de datos
Para resolver este problema, se suele insertar otro carcter DLE, con lo cual, al encontrarse dos DLE consecutivos, el receptor sabr que debe de eliminar uno de ellos y, adems, no se trata de caracteres de inicio o fin Por ello, esta tcnica se denomina de relleno de caracteres
DLE
ETX
DLE DLE
STX STX
Z Z
DLE DLE
DLE DLE
DLE
ETX
ETX
En esta tcnica, no se esta sujeto a un tamao de bits determinado, como en el cdigo 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 automticamente un 0. Con ello, el byte indicador no se presentar en los datos
01111110110111110100011101111100001111110
11011111100011101111100
Normalmente, en las redes locales se usa la transicin 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 cdigos de violacin es parte del estndar LAN 802
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 algn problema que presente el medio; en tal situacin, el receptor no emitira ningn acuse de recibo negativo, con lo cual aparentemente no existira ningn problema
Para solventar este problema, adems se introducen temporizadores, con los cuales, si despus de cierto tiempo no se recibe un marco o acuse, se vuelve automticamente 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
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 nmeros de secuencia en los mismos
Tipos de Errores
En general, se identifican dos tipos de error: errores por rfaga, errores aislados Suponga que se envan 1000 bits (recuerde que los bits entre computadoras se envan 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 rfaga de 100, solo uno o dos bloques de cada 1000 contendrn errores
Para detectar los errores, se pueden seguir dos estrategias al momento de enviar la informacin
Incluir suficiente informacin redundante, con lo cual se podr deducir que es lo que se envi (deteccin y correccin de errores) Incluir solo cierto grado de redundancia, con el objetivo de determinar cuando un dato est corrupto (deteccin de errores)
Paridad Hamming Cdigos de Redundancia cclica Message Digest (MD5) Retransmisin Convolucionales
Notacin
Un marco generalmente esta integrado por k bits de datos y r bits redundantes o de comprobacin de error Se llama palabra cdigo a aquella que consta de bits de datos y de comprobacin n=k+r
10
Notacin
Distancia de Hamming:
Nmero de bits en los que difieren dos palabras cdigo 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 daos en el viaje
Deteccin de errores
Una palabra cdigo en s tiene 2n posibles valores Cualquier error o modificacin que sufra una palabra cdigo, resultar en otra palabra cdigo diferente Por lo anterior, solo se busca tomar 2k palabras cdigo vlidas, en lugar de tomar las 2n palabras que se podran normalmente generar
11
Deteccin de Errores
La distancia de Hamming sirve para determinar cuantos bits son necesarios para que una palabra vlida se transforme en otra palabra vlida La capacidad de deteccin y correccin de errores depende de la distancia de Hamming
Deteccin de Errores
Por ejemplo, el mtodo ms 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 (informacin redundante), dependiendo de la paridad deseada
12
Control de Paridad
Paridad vertical o por carcter: 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
13
Paridad Longitudinal
Nm Bit 1 2 3 4 5 6 7 8 Paridad Caracteres (Paridad Impar) 1 0 0 1 0 1 1 0 1 1 2 0 1 1 0 1 1 0 1 0 3 0 1 1 0 0 1 0 1 0 4 0 0 0 0 1 1 0 1 0? 5 0 1 1 1 0 1 0 1 1 Paridad 1 1 0 0 1 0 1 0
14
Cdigo de Hamming
El vector c representa el cdigo de Hamming resultante, i el vector binario de entrada DkDk1...D2D1 (bits de informacin) y G, la matriz generadora del cdigo
r r c = i G
Cdigo de Hamming
15
Cdigo de Hamming
Hamming propone una matriz P de dimensin k x r, donde: r = int{log2(k)+1} Adems: n=k+r De lo anterior, se puede sealar que el vector c se forma de:
r c = [ Dk ...D1 | Rr ...R1 ]
Cdigo de Hamming
Los valores de la matriz P se obtienen de las posiciones base dos de los bits de informacin Dx despus de haber insertado r = n k bits de redundancia Rx en las posiciones potencias de dos
16
Cdigo de Hamming
Cdigo de Hamming
r c = [1101 | 010]
17
Cdigo de Hamming
El cdigo redundante a transmitir estara compuesto por los bits de informacin 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 mdulo dos de las posiciones donde los bits de informacin son igual a uno
Cdigo de Hamming
7 1
6 1
5 0
4 R3
3 1
2 R2
1 R1
18
Cdigo de Hamming
La deteccin / correccin de error es posible mediante el clculo del sndrome del cdigo recibido:
r r s = c HT
H T = PT | I nk
Cdigo de Hamming
19
Cdigo de Hamming
Una forma alternativa de calcular el sndrome es sumar las posiciones binarias con bits iguales a 1, incluyendo los 1s de la redundancia:
7 1 6 1 5 0 4 R3 (0)
1 1 0 0 0
3 1
2 R2 (1)
1 1 1 1 0 1 0 1 0 0
1 R1 (0)
Los cdigos de Redundancia Cclica son ampliamente usados dentro de las Redes de Computadoras Se basan en el principio: el desplazamiento cclico (end around) de cualquier palabra cdigo de un cdigo cclico es otra palabra cdigo en el cdigo
20
En estos cdigos se emplea la aritmtica polinomial mdulo 2 sin acarreos; por tanto, la suma como la resta son idnticas a la operacin OR exclusiva Un cdigo cclico (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
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
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 aadirle informacin redundante, con la cual se verificar su integridad
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 alteracin en los datos que se han transmitido
22
Para generar el cdigo 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). Llmese a este nuevo conjunto de bits B(x) Dividir B(x) entre G(x), usando la divisin mdulo 2. Llmese Q(x) al cociente y R(X) al residuo Realizar la resta B(x) - R(x) = T(x) (aritmtica mdulo 2)
T(x) es el patrn de bits que el emisor enva al receptor Del lado del receptor, se verifica que T(x) sea divisible exactamente por G(x) (es decir, que el residuo de la divisin sea cero). Si es el caso, se dice que no ha sufrido alteracin el patrn de bits
23
Sea
Calcular el campo de suma de comprobacin Una vez calculado, verificar la integridad de la informacin transmitida
Es claro que este mtodo no detectara errores que produzcan secuencias T(x) divisibles entre G(x) Para errores aislados de un bit, se podrn detectar en cualquier caso si r >1 Tambin tiene la cualidad de detectar errores en rfaga menores a r; si la rfaga genera r+1 errores, se detectar si esta es distinta de G(x)
24
Es importante notar que dichos polinomios contienen como factor primo a x+1
MD5
MD5 es una tcnica 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 alteracin Adems, puede emplearse para la validacin de usuarios o procesos, aunque no es la ms usada, a comparacin de otras tcnicas como RSA
25
El usuario enva un ID de usuario al servidor El servidor enva en mensaje aleatorio al usuario El servidor y el sistema del usuario hacen un clculo MD5 del mensaje aleatorio y el password del usuario El sistema del usuario enva el mensaje MD5, y el servidor verifica que este coincida con el MD5 que ha obtenido. Si es el caso, se vlida su contrasea
Se realiza el clculo MD5 del mensaje Se enva 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 tamao, 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 continuacin
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 mltiplo 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 aadir los bits de relleno es almacenada en una representacin de 64 bits y aadida 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 mltiplo de 512.
Algoritmo MD5
3.
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
Adems, se crea una tabla de 64 elementos T[1 ... 64] construida con la funcin 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
AA = A, BB = B, CC = C, DD = D
Se crea una primera etapa donde la expresin [abcd k s i] denota la operacin 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 expresin [abcd k s i] que denota a = b + ((a + G(b,c,d) + mxj[k] + T[i]) << s), se efectan 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 operacin 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
A = A + AA B = B + BB C = C + CC D = D + DD
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 ms significativos de D. Independientemente de la longitud del mensaje, la huella ser de 128 bits
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
Generalidades
34
Empaquetado de la informacin Secuenciacin de la informacin Contencin Acuses de recepcin Deteccin / correccin de errores Temporizacin Recuperacin de errores
Formato de la Informacin
En la comunicacin asncrona, normalmente se usa un formato orientado a caracteres (bytes) En la comunicacin sncrona, 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 disean pensando en el tipo de transmisin que ser soportado: simplex, half o full duplex Tambin se determina si se usar transmisin sncrona o asncrona Dependiendo de lo anterior, los marcos se formarn de caracteres, bloques o bits
Protocolo BISYNC
Protocolo orientado a carcter, half duplex Hace uso de los siguientes caracteres de control:
SYN: lnea activa y desocupada DLE: carcter 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 transmisin (End of Transmission)
36
Protocolo BISYNC
SY N
SY N
SO H
<header ST > X
<datos >
ETX
<error control>
SY N
DLE STX
<datos>
DLE ETX
<error control>
Protocolo KERMIT
SOH: Inicio del Encabezado LEN: Longitud paquete (35 a 126) exceso de 32 SEQ: Nmero de trama (exceso de 32 mod 64) FCS: CRC CR: Carriage Return
SO H
LEN
SE Q
TYP E
<datos>
FC S
CR
37
Protocolo KERMIT
S: send initiation (parmetros) F: nombre del archivo D: Datos de archivo Z: Fin de archivo B: Fin de transmisin Y: confirmacin de llegada N: confirmacin negativa de llegada E: error fatal
Mayor transparencia de datos El encabezado contiene toda la informacin sobre la longitud del paquete de informacin
38
<datos>
CR
El carcter BCC sirve para indicar la posicin del campo de conteo de datos
Ampliamente usado en la actualidad Se utilizan banderas en lugar de caracteres de control. Por ejemplo, la bandera 0 111 111 0 Para evitar confusin con la bandera, despus de 5 1s consecutivos de agrega un cero La longitud de los campos de control es fija
0111111 0 <header > <error control>
<datos>
01111110
39
Control de Flujo
Independientemente del empaquetado, se requiere de mecanismos que controlen el flujo de las tramas:
Reglas sobre la peticin y envo de la informacin Reglas sobre los acuses de recibo y de retransmisin
Control de Flujo
RTS / CTS (Request to send / clear to send): Activacin y desactivacin de los circuitos de datos mediante lneas de control independientes XON / XOFF: envo de caracteres de control para habilitar o deshabilitar el envo de informacin
40
Control de Flujo
Encabezados con informacin de control (nmero de paquete N(s)) Acuses de recibo positivos (ACK) o negativos (NAK) de las tramas enviadas
41
Control de Flujo
Control de Flujo
Reglas especficas para el envo de ACK o de NAK dependiendo de la temporizacin Los acuses de recibo deben permitir la adecuada secuenciacin de las tramas Empleo generalizado del Automatic Repeat Request (ARQ): el acuso de recibo indica el nmero de la trama que se espera
42
Control de Flujo
Diversas estrategias:
Idle ReQuest (stop - wait): Envo de trama N(S) y acuse de recepcin N(R), donde N(S) = N (R). sta estrategia se orienta a la comunicacin half duplex Continuous RQ: Envo constante de tramas sin espera inmediata de acuse de recepcin (full duplex).
Control de Flujo
43
En los algoritmos de parada y espera (stop and wait), el emisor enva un marco y no enva otro hasta recibir una confirmacin del que ha enviado Se requiere una comunicacin full duplex, aunque los datos (de usuario) solo viajan en un sentido Por lo anterior, se pueden implementar sobre medios fsicos semi duplex Existe el problema de la prdida de los acuses, que puede inducir a la recepcin de mltiples marcos hasta el bloqueo total del protocolo
Para identificar marcos repetidos, se ha optado por aadir un nmero de secuencia a los marcos, los cuales pueden ser de un bit Con ello, el receptor sabe que marco debe de llegar a continuacin (n n+1)
44
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
Para lograr mayor eficiencia, se propuso retardar el acuse, tratando de enviarlo en marcos de salida (en el campo ack) La tcnica anterior, conocida como incorporacin (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
Los protocolos de ventana corrediza tienen una gran inmunidad a los fallos En estos protocolos, cada marco tiene un nmero de secuencia desde 0 hasta un nmero mximo predefinido Por lo general, dicho nmero mximo se representa por 2n-1, el cul puede ser acomodado en un campo de n bits
48
49