Está en la página 1de 14

INDICE 1 PROTOCOLOS DE VENTANA DESLIZANTE .............................................................................. 2 1.1 1.2 1.3 1.4 Introduccin ................................................................................................................................. 2 Funcionamiento de la ventana de trasmisin .......................................................................

2 Funcionamiento de la ventana de recepcin ......................................................................... 3 Correccin de errores. ............................................................................................................... 3 Estrategia de rechazo simple (retroceso N, vuelta atrs, pullback NACK). .............. 4 Estrategia de rechazo selectivo (repeticin selectiva, selective repeat). .................. 4

1.4.1 1.4.2 2

CDIGO DE HAMMING ................................................................................................................... 4 2.1 2.2 CODIGO DE HAMMING (7,4) .................................................................................................. 4 ejemplo......................................................................................................................................... 6

3 4 5

CDIGO CRC..................................................................................................................................... 8 BILBIOGRAFIA ................................................................................................................................. 11 ANEXOS ............................................................................................................................................ 12 5.1 ANEXO A IMGENES ......................................................................................................... 12

1 1.1

PROTOCOLOS DE VENTANA DESLIZANTE Introduccin

El Protocolo de Ventana Deslizante es un protocolo de transmisin de datos bidireccional de la capa del nivel de enlace (modelo OSI). La ventana deslizante es un dispositivo de control de flujo de tipo software, es decir, el control del flujo se lleva a cabo mediante el intercambio especfico de caracteres o tramas de control, con los que el receptor indica al emisor cul es su estado de disponibilidad para recibir datos. Este dispositivo es necesario para no inundar al receptor con envos de tramas de datos. El receptor al recibir datos debe procesarlo, si no lo realiza a la misma velocidad que el transmisor se ver saturado de datos, y parte de ellos se pueden perder. Para evitar tal situacin la ventana deslizante controla este ritmo de envos del emisor al receptor. Con este dispositivo se resuelven dos grandes problemas: el control de flujo de datos y la eficiencia en la transmisin. 1.2 Funcionamiento de la ventana de trasmisin

El protocolo de ventana deslizante permite al emisor transmitir mltiples segmentos de informacin antes de comenzar la espera para que el receptor le confirme la recepcin de los segmentos, tal confirmacin se llama validacin, y consiste en el envo de mensajes denominados ACK del receptor al emisor. La validacin se realiza desde el receptor al emisor y contiene el nmero de la siguiente trama que espera recibir el receptor, o el de la ltima trama recibida con xito, ACK n (siendo n el nmero de la trama indicada). Con esta indicacin el emisor es capaz de distinguir el nmero de los envos realizados con xito, los envos perdidos y envos que se esperan recibir Los segmentos se denominaran Unacknowledge si han sido enviados pero no han sido validados. Tcnicamente el nmero de segmentos que pueden ser Unacknowledge en un momento dado est limitado por el tamao de la ventana, un nmero pequeo y fijo, se denomina el ancho de ventana. Por ejemplo, en una ventana deslizante de tamao 8, el emisor puede transmitir hasta 8 segmentos sin recibir validacin de ninguno de ellos. (ANEXO A figura 1.1 a). Entonces esperar una confirmacin de recepcin procedente del receptor sin enviar ningn paquete ms. Una vez el emisor reciba una validacin del primer paquete que envi, perteneciente al nmero 1 de 8 de la ventana deslizante, la ventana se deslizar abarcando 8 posiciones (su ancho de ventana definido), pero en este caso desde la 2 hasta la 9 y enviar la trama nmero 9 continuando a la espera de recibir ms confirmaciones para poder seguir deslizndose y enviando las tramas siguientes. (ANEXO A figura 1.1 b). Si el protocolo esperase una validacin por cada trama enviada, no se enviaran ms segmentos hasta recibir el reconocimiento del ltimo paquete enviado. El concepto de ventana deslizante hace que exista una continua transmisin de informacin, mejorando el desempeo de la red (ANEXO A figura 1.2). El transmisor deber guardar en un buffer todas aquellas tramas enviadas y no validadas (Unacknowledge packets), por si necesitase retransmitirlas. Slo puede borrarlas del buffer al recibir su validacin procedente del receptor, y deslizar as la ventana una unidad ms. El

nmero ms pequeo de la ventana deslizante corresponde al primer paquete de la secuencia que no ha sido validado. El tamao del buffer debe ser igual o mayor al tamao de la ventana. El nmero mximo de tramas enviadas sin validar es igual al ancho de la ventana. De esta forma el buffer podr almacenar temporalmente todas las tramas enviadas sin validar. A cada uno de los segmentos pertenecientes al buffer (aquellos enviados y no validados), se les asigna un temporizador. El temporizador es el lmite de tiempo de espera para recibir la validacin de un determinado paquete. Si el paquete se pierde en el envo, el emisor nunca recibira validacin. El paquete nunca llegara al receptor, este continuara a la espera de recibir el paquete perdido. De esta manera el temporizador expirara, tomando la decisin de reenviar la trama asignada al temporizador consumido. A este proceso se le conoce como "Stop and Wait" (ANEXO A figura 1.3 a). Existen situaciones distintas a la anterior en las que el emisor es consciente que debe retransmitir tramas sin que el temporizador llegue a expirar. 1.3 Funcionamiento de la ventana de recepcin

El receptor posee una ventana de recepcin, similar a la de transmisin, pero con una finalidad totalmente distinta. Su funcionalidad permite al receptor recibir un conjunto de tramas que le llegan desordenadas. La ventana de recepcin es la lista que tiene el receptor con los nmeros de la secuencia consecutivos de las tramas que puede aceptar. Almacena las tramas temporalmente en un buffer hasta el momento que posea todas las tramas esperadas, la secuencia de tramas esperada al completo, y as ordenarlas. El receptor debe disponer de un buffer de igual tamao que su ventana de recepcin para almacenar temporalmente las tramas hasta ordenarlas. Existen 2 modos de trabajo en funcin del tamao de su ventana: Tamao ventana recepcin=1. Con lo cual la ventana de recepcin dispone de un buffer. Slo puede almacenar la trama que le llega en cada instante, es decir, debe recibir las tramas en la secuencia correcta, ya que no dispone de recursos para ordenarlas despus. Impone al emisor la condicin de transmitir siempre las tramas en secuencia. Tamao ventana recepcin>1. La ventana de recepcin dispone de N buffers (N=tamao ventana de recepcin) que le permiten recibir hasta N tramas desordenadas, almacenarlas y proceder a su ordenamiento posterior. Le permite al emisor transmitir tramas desordenadas, tantas como quepan en los buffers del receptor. 1.4 Correccin de errores.

El receptor es capaz de reconocer una trama errnea mediante los cdigos de Control de redundancia cclica. El receptor cuando detecta que una trama no es correcta, por que se han producido errores en la transmisin, la descarta siempre. Existen 2 estrategias diferentes para la recuperacin de errores:

1.4.1

Estrategia de rechazo simple (retroceso N, vuelta atrs, pullback NACK).

Tamao ventana recepcin=1. El receptor rechaza todas las tramas recibidas a partir de detectar una trama con error en el nmero de secuencia. Al detectar la trama errnea enva una seal REJ n (seal propia para este tipo de estrategia, n=n trama errnea), o NACK n, (trama n no validada, n=n trama errnea), al emisor para indicarle la situacin. En ese instante el emisor comienza con la retransmisin de todas las tramas descartadas por el receptor, tanto la trama errnea como las tramas enviadas despus de la trama errnea. Estas tramas retransmitidas por el transmisor se encontraban en el buffer del transmisor a espera de validacin (Unacknowledge packets). No es un mtodo efectivo, pierde mucho tiempo en la retransmisin. (ANEXO A figura 1.4 b). 1.4.2 Estrategia de rechazo selectivo (repeticin selectiva, selective repeat).

Tamao ventana recepcin>1. El receptor descarta nicamente la trama errnea y acepta las que llegan detrs almacenndolas en el buffer de recepcin. En esta situacin falta una trama en la secuencia (tramas desordenadas). Al detectar la trama errnea enva una seal SREJ n (seal propia para este tipo de estrategia, n=n trama errnea), o NACK n, (trama n no validada, n=n trama errnea), al emisor para indicarle la situacin. procediendo el emisor a reenviarle nicamente esta trama errnea. Esta trama errnea se encontrara en el buffer del emisor a la espera de ser validada. El receptor al recibir la retransmisin correcta de la anterior trama errnea la almacena en el buffer con el resto de tramas recibidas y las ordena, para posteriores tratamientos. Con ello ha recibido la secuencia de tramas en orden correcto y vlido. (ANEXO A figura 1.4 c).

CDIGO DE HAMMING

El cdigo de Hamming es un cdigo detector y corrector de errores que lleva el nombre de su inventor, Richard Hamming. En los datos codificados en Hamming se pueden detectar errores en un bit y corregirlos, sin embargo no se distingue entre errores de dos bits y de un bit (para lo que se usa Hamming extendido). Esto representa una mejora respecto a los cdigos con bit de paridad, que pueden detectar errores en slo un bit, pero no pueden corregirlo. 2.1 CODIGO DE HAMMING (7,4)

Es un mtodo general propuesto por R. W Hamming usando una distancia mnima m. Con este mtodo, por cada entero m existe un cdigo de hamming de 2m-1 bits que contiene m bits de paridad y 2m-1-m bits de informacin. En este cdigo, los bits de paridad y los bits de paridad se encuentran entremezclados de la siguiente forma: Si se numeran las posiciones de los bits desde 1 hasta 2m-1, los bits en la posicin 2k, donde , son los bits de paridad y los bits restantes son bits de informacin. El algoritmo de Hamming (7.4) puede corregir cualquier error de un solo bit, pero cuando hay errores en ms de un bit, la palabra transmitida se confunde con otra con error en un slo bit, siendo corregida, pero de forma incorrecta, es decir que la palabra que se corrige es otra distinta a la original, y el mensaje final ser incorrecto sin saberlo. Para poder detectar (aunque

sin corregirlos) errores de dos bits, se debe aadir un bit ms, y el cdigo se llama Hamming extendido. El procedimiento para esto se explica al final. El algoritmo es el siguiente: 1. Todos los bits cuya posicin es potencia de dos se utilizan como bits de paridad (posiciones 1, 2, 4, 8, 16, 32, 64, etc.). 2. Los bits del resto de posiciones son utilizados como bits de datos (posiciones 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.). 3. Cada bit de paridad se obtiene calculando la paridad de alguno de los bits de datos. La posicin del bit de paridad determina la secuencia de los bits que alternativamente comprueba y salta, a partir de ste, tal y como se explica a continuacin. Posicin 1: salta 0, comprueba 1, salta 1, comprueba 1, etc. Posicin 2: salta 1, comprueba 2, salta 2, comprueba 2, etc. Posicin 4: salta 3, comprueba 4, salta 4, comprueba 4, etc. Posicin 8: salta 7, comprueba 8, salta 8, comprueba 8, etc. Posicin 16: salta 15, comprueba 16, salta 16, comprueba 16, etc. Regla general para la posicin n es: salta n-1 bits, comprueba n bits, salta n bits, comprueba n bits... Y as sucesivamente. En otras palabras, el bit de paridad de la posicin 2^k comprueba los bits en las posiciones que tengan al bit k en su representacin binaria. Dicho a la inversa, el bit 4, chequea los bits 4, 5, 6, 7, al ser estos los de su representacin binaria: 4=100(2), 5=101(2), 6=110(2) y 7=111(2). Por el contrario, el mismo bit de paridad no comprueba el bit 8, debido a que en su representacin binaria el bit nmero 3 (2^3=4) es igual a 0 (8=10002). As, por ejemplo, para los primeros trminos se tiene: En la Posicin 1 (2^0 = 1), comprobaramos los bits: 1, 3, 5, 7, 9, 11, 13... En la Posicin 2 (2^1 = 2), los bits: 2, 3, 6, 7, 10, 11, 14, 15... En la Posicin 4 (2^2 = 4), los bits: 4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, 23... En la Posicin 8 (2^3 = 8) tendramos: 8, 9, 10, 11, 12, 13, 14, 15, 24-31... Siguiendo el algoritmo hasta completar la nueva cadena

2.2

ejemplo

Consideremos la palabra de datos de 7 bits "0110101". Para ver cmo se generan y utilizan los cdigos Hamming para detectar un error, observe las tablas siguientes. Se utiliza la d para indicar los bits de datos y la p para los de paridad. En primer lugar los bits de datos se insertan en las posiciones apropiadas y los bits de paridad calculados en cada caso usando la paridad par. p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Palabra de datos (sin paridad): 0 1 1 0 1 0 1 p1 1 0 1 0 1 1 p2 0 0 1 0 0 1 p3 0 1 1 0 p4 0 1 0 1 Palabra de datos (con paridad): 1 0 0 0 1 1 0 0 1 0 1 Clculo de los bits de paridad en el cdigo Hamming P1 = D1 exor D2 exor D4 exor D5 exor D7 P2 = D1 exor D3 exor D4 exor D6 exor D7 P3 = D2 exor D3 exor D4 P4 = D5 exor D6 exor D7 La nueva palabra de datos (con los bits de paridad) es ahora "10001100101". Consideremos ahora que el bit de la derecha, por error, cambia de 1 a 0. La nueva palabra de datos ser ahora "10001100100". Sin errores p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Palabra de datos 1 0 0 0 1 1 0 0 1 0 1 recibida: p1 1 0 1 0 1 1 p2 0 0 1 0 0 1 p3 0 1 1 0 p4 0 1 0 1 Prueba de paridad 1 Correcto Correcto Correcto Correcto 0 0 0 0 Bit de comprobacin

Comprobacin de los bits de paridad (con primer bit de la derecha sin cambiar) Con errores p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Prueba de paridad Bit de comprobacin

Palabra de datos 1 0 0 0 1 1 0 0 1 0 0 1 recibida: p1 1 1 0 1 0 1 0 Error p2 1 0 1 1 0 0 0 Error p3 0 1 1 0 Correcto 0 p4 1 1 0 0 Error 1 Comprobacin de los bits de paridad (con primer bit de la derecha cambiado) Si se analiza en la tabla anterior la paridad que se debe obtener a la derecha tras la llegada del mensaje sin errores debe ser siempre 0 (por cada fila), pero en el momento en que ocurre un error esta paridad cambia a 1, de all el nombre de la columna "prueba de paridad 1". Se observa que en la fila en que el cambio no afect la paridad es cero y llega sin errores. El paso final es evaluar los bits de paridad (recuerde que el fallo se encuentra en d7). El valor entero que representan los bits de paridad es 11 (si no hubieran ocurrido errores este valor seria 0), lo que significa que el bit dcimo primero de la palabra de datos (bits de paridad incluidos) es el errneo y necesita ser cambiado. p4 p3 p2 p1 Binario 1 0 1 1 Decimal 8 2 1 = 11 Cambiando el bit dcimo primero 10001100100 se obtiene de nuevo 10001100101. Eliminando los bits de patrn de la paridad no se tienen en cuenta los bits de paridad. Si el error se produjera en uno de ellos, en la comprobacin slo se detectara un error, justo el correspondiente al bit de paridad causante del mismo.

CDIGO CRC

El cdigo de verificacin de redundancia cclica (Codigo CRC) es el principal mtodo de deteccin de errores utilizado en las comunicaciones , bsicamente es un mtodo de control de integridad de datos. La verificacin de redundancia cclica consiste en la proteccin de los datos en bloques, denominados tramas. A cada trama se le asigna un segmento de datos denominado cdigo de control (al que se denomina a veces FCS, secuencia de verificacin de trama, en el caso de una secuencia de 32 bits, y que en ocasiones se identifica errneamente como CRC). El cdigo CRC contiene datos redundantes con la trama, de manera que los errores no slo se pueden detectar sino que adems se pueden solucionar. Imagen El concepto de CRC consiste en tratar a las secuencias binarias como polinomios binarios, denotando polinomios cuyos coeficientes se correspondan con la secuencia binaria. Por ejemplo, la secuencia binaria 0110101001 se puede representar como un polinomio, como se muestra a continuacin: = 0*X9 + 1*X8 + 1*X7 + 0*X6 + 1*X5 + 0*X4 + 1*X3 + 0*X2 + 0*X1 + 1*X0 =X8 + X7 + X5 + X3 + X0 =X8 + X7 + X5 + X3 + 1 De esta manera, la secuencia de bits con menos peso (aquella que se encuentra ms a la derecha) representa el grado 0 del polinomio (X0 = 1), (X0 = 1), (X0 = 1), el 4 bit de la derecha representa el grado 3 del polinomio (X3), y as sucesivamente. Luego, una secuencia de n- bits forma un polinomio de grado mximo n-1. Todas las expresiones de polinomios se manipulan posteriormente utilizando un mdulo 2. En este proceso de deteccin de errores, un polinomio predeterminado (denominado polinomio generador y abreviado G(X)) es conocido tanto por el remitente como por el destinatario. El remitente, para comenzar el mecanismo de deteccin de errores, ejecuta un algoritmo en los bits de la trama, de forma que se genere un CRC, y luego transmite estos dos elementos al destinatario. El destinatario realiza el mismo clculo a fin de verificar la validez del CRC. Aplicaciones prcticas Digamos que M es el mensaje que corresponde a los bits de la trama que se enviar, y que M(X) es el polinomio relacionado. Supongamos que M' es el mensaje transmitido, por ejemplo, el mensaje inicial al que se concatena un CRC de n bits. El CRC es el siguiente: M'(X)/G(X)=0. Por lo tanto, el cdigo CRC es igual al remanente de la divisin polinomial de M(X) (X) (al que se le ha anexado los n bits nulos que corresponden a la longitud del CRC) entre G(X). Por ejemplo: tomemos el mensaje M con los siguientes 16 bits: 1011 0001 0010 1010 (denominado B1 en hexadecimal). Tomemos G(X) = X3 + 1 (representado en el sistema binario por 1001). Siendo que G(X) tiene un grado 3, el resultado es aadirle a M 4 bits nulos: 10110001001010100000. El CRC es igual al remanente de M dividido por G : 10110001001010100000 1001...,..,.,.,..... ----...,..,.,.,..... 0100..,..,.,.,.....

0000..,..,.,.,..... ----..,..,.,.,..... 1000.,..,.,.,..... 0000.,..,.,.,..... ----.,..,.,.,..... 1000.,..,.,.,..... 1001,..,.,.,..... ----,..,.,.,..... 1111..,.,.,..... 1001..,.,.,..... ----..,.,.,..... 1100.,.,.,..... 1001.,.,.,..... ----.,.,.,..... 1101,.,.,..... 1001,.,.,..... ----,.,.,..... 1000.,.,..... 0000.,.,..... ----.,.,..... 10001...... 1001,.,..... ----,.,..... 10000.,..... 1001.,..... ---1111,..... 1001,..... ----,..... 1100..... 1001..... ----..... 1100.... 1001.... ----.... 1010... 1001... ----... 0110.. 0000.. ----.. 1100. 1001. ----. 1010 1001 ---0011 Para crear M' se debe concatenar el CRC resultante con los bits de la trama que se va a transmitir:

M' = 1011000100101010 + 0011 M' = 10110001001010100011 Por lo tanto, si el destinatario del mensaje divide M' por G, obtendr un remanente de cero si la transmisin ocurri sin errores. 10110001001010100011 1001...,..,.,.,...,, ----...,..,.,.,...,, 0100..,..,.,.,...,, 0000..,..,.,.,...,, ----..,..,.,.,...,, 1000.,..,.,.,..... 1001.,..,.,.,..... ----.,..,.,.,..... 0010,..,.,.,..... 0000,..,.,.,..... ----,..,.,.,..... 0101..,.,.,..... 0000..,.,.,..... ----..,.,.,..... 1010.,.,.,..... 1001.,.,.,..... ----.,.,.,..... 0110,.,.,..... 0000,.,.,..... ----,.,.,..... 1101.,.,..... 1001.,.,..... ----.,.,..... 1010,.,..... 1001,.,..... ----,.,..... 0111.,..... 0000.,..... ---1110,..... 1001,..... ----,..... 1111..... 1001..... ----..... 1100.... 1001.... ----.... 1010... 1001... ----... 0110.. 0000.. ----,, 1101,

1001, ----, 1001 1001 ---0 Polinomios generadores Los polinomios generadores ms comunes son: 4 CRC-12: X12 + X11 + X3 + X2 + X + 1 CRC-16: X16 + X15 + X2 + 1 CRC CCITT V41: X16 + X12 + X5 + 1 (este cdigo se utiliza en el procedimiento HDLC) CRC-32 (Ethernet): = X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 + X + 1 CRC ARPA: X24 + X23+ X17 + X16 + X15 + X13 + X11 + X10 + X9 + X8 + X5 + X3 + 1 BILBIOGRAFIA

5 5.1

ANEXOS ANEXO A IMGENES

También podría gustarte