Capítulo 3 La Capa de Enlace Roberto Ferro
Sumario <ul><li>Funciones de la capa de enlace </li></ul><ul><li>Protocolos de parada/espera </li></ul><ul><li>Protocolos ...
La capa de enlace en el contexto del modelo de capas
 
Funciones de la capa de enlace <ul><li>Obligatorias: </li></ul><ul><ul><li>Identificar tramas (agrupación de bits que se i...
Tipo de transmisión <ul><li>Asíncrona: cada byte se envía de forma independiente. Cuando no hay datos que enviar la línea ...
Características de la transmisión asíncrona
Técnicas de identificación de tramas <ul><li>Contador de caracteres: posibles problemas por pérdida de sincronismo. </li><...
 
 
Control de flujo <ul><li>Necesario para no 'agobiar' al receptor.  </li></ul><ul><li>Se realiza normalmente a nivel de tra...
Tasa de errores (BER) <ul><li>La tasa de errores de un medio de transmisión se mide por la BER (Bit Error Rate) que se def...
Valores de BER habituales >10 -5 GSM <10 -5 Enlaces telefónicos, satélite, ADSL, CATV < 10 -8 LANs de cobre, Radioenlaces ...
Códigos de control de errores <ul><li>Los códigos pueden ser: </li></ul><ul><ul><li>Detectores de errores : p. ej. CRC (Cy...
Estrategias de control de errores Código corrector (ej. RS) Simplex (o emisión broadcast/multicast) Alta o muy alta Código...
STX ETX Contenido de la trama Bits de Paridad transversales Bits de Paridad longitudinales Ejemplo de uso de Interleaving ...
Conteo de caracteres
Caracteres de principio y fin
Banderas e inserción de bits
Códigos correctores y detectores de error <ul><li>Qué es un error ? </li></ul><ul><ul><li>Una trama tiene  m  bits y se ag...
Códigos correctores y detectores de error (2) <ul><li>La detección y corrección se basa en la distancia de Hamming del cód...
Códigos correctores y detectores de error (3) <ul><li>Si queremos un código para  corregir errores simples  con  n = m + r...
Códigos de Hamming <ul><li>Ejemplo real del límite teórico </li></ul><ul><li>Las posiciones 2 i  son ocupadas por los bits...
Códigos de Hamming (2) <ul><ul><ul><li>Palabra  1011001  queda  ab1c011d001 </li></ul></ul></ul><ul><ul><ul><li>hay unos e...
Códigos de Hamming
Códigos de Hamming <ul><li>Se tiene una matriz que es multiplicada por la palabra recibida, si ésta es correcta se tiene u...
Códigos de Hamming
Códigos de Hamming
Códigos de Hamming
Códigos de Hamming
Códigos de Hamming
Detection del error
Ráfagas y Matrices <ul><li>Hamming funciona para errores de un bit </li></ul><ul><li>Hay una “pisada”para que sirvan para ...
Códigos detectores de error <ul><li>Si la tasa de error es baja conviene detectar y retransmitir a corregir </li></ul><ul>...
Códigos detectores de error  <ul><li>El problema con lo anterior es que con 1 bit la probabilidad de detección de una ráfa...
Códigos polinómicos <ul><li>Se tratan los mensajes de bits como coeficientes de un polinomio </li></ul><ul><li>Si tengo un...
Códigos polinómicos (2) <ul><li>La aritmética se hace en módulo 2, no hay acarreos y tanto la suma como la resta son idént...
Códigos polinómicos (3) <ul><li>El transmisor y receptor deben ponerse de acuerdo en el uso del llamado polinomio generado...
Códigos polinómicos (4) <ul><li>La idea es agregar una suma de comprobación al final de la trama de modo tal que el polino...
Códigos polinómicos (5) <ul><li>El algoritmo es: </li></ul><ul><ul><li>Si r es el grado de G(x), agrego r bits en 0 en la ...
Códigos polinómicos
Códigos polinómicos (6) <ul><li>Analicemos la potencia del método </li></ul><ul><li>Supongamos que hay un error y el recep...
Códigos polinómicos (7) <ul><li>Si hay un error simple, E(x)=x i  (*) </li></ul><ul><ul><li>lo detectamos si G(x) tiene má...
Códigos polinómicos (8) <ul><li>Si hay un número impar de bits con error, E(x) contiene un número impar de términos </li><...
Códigos polinómicos (9) <ul><li>Hay polinomios estandarizados: </li></ul><ul><ul><li>CRC-12  x 12 +x 11 +x 3 +x 2 +x 1 +1 ...
Sumario <ul><li>Funciones de la capa de enlace </li></ul><ul><li>Protocolos de parada/espera </li></ul><ul><li>Protocolos ...
Protocolo de parada y espera <ul><li>Es el protocolo fiable orientado a conexión más sencillo </li></ul><ul><li>Impide un ...
Parada y espera 0 ms 10 ms 20 ms 30 ms 40 ms 50 ms T1 T1 T1 T1 ACK ACK ACK T2 4000 2000 0 Km
Sumario <ul><li>Funciones de la capa de enlace </li></ul><ul><li>Protocolos de parada/espera </li></ul><ul><li>Protocolos ...
  Protocolo de ventana deslizante <ul><li>Implementa un pipeline para evitar los tiempos muertos en la línea: </li></ul><u...
Ventana deslizante 0 ms 10 ms 20 ms 30 ms 40 ms 50 ms T1 T1 T1 T2 ACK(1) ACK(1) ACK(1) T6 T2 T4 T3 T5 T4 T3 ACK(2) ACK(3) ...
Tamaño de ventana <ul><li>La ventana mínima para 100% de ocupación es la que ‘llena el hilo’ de datos en ambos sentidos, m...
Tamaño de ventana <ul><li>La ventana mínima para 100% de ocupación es la que ‘llena el hilo’ de datos en ambos sentidos, m...
Tamaño de ventana <ul><li>La ventana mínima para 100% de ocupación es la que ‘llena el hilo’ de datos en ambos sentidos, m...
Protocolos de ventana deslizante <ul><li>El protocolo puede ser: </li></ul><ul><ul><li>Retroceso n:  no se acepta una tram...
 
Retroceso n Repetición selectiva
 
Sumario <ul><li>Funciones de la capa de enlace </li></ul><ul><li>Protocolos de parada/espera </li></ul><ul><li>Protocolos ...
Familia de protocolos HDLC (High level Data Link Control)   <ul><li>HDLC es un estándar ISO. Deriva del SDLC desarrollado ...
Formato de trama HDLC Bits   8 8 8 8 16 ó 32  0 <ul><li>Se utiliza relleno de bits </li></ul><ul><li>El campo dirección ...
Tipos de tramas HDLC <ul><li>Las tramas HDLC pueden ser de tres tipos según el valor de los primeros bits del campo contro...
Comandos en tramas de supervisión HDLC Petición de reenvío cuando se usa retransmisión selectiva SELECTIVE REJECT 11 Acuse...
Elaboración de tramas HDLC <ul><li>En el emisor: </li></ul><ul><ul><li>Concatenar campos dirección, control y datos </li><...
Funcionamiento de HDLC <ul><li>¿Que pasa si en la transmisión desaparecen los dos últimos bytes (el CRC) de una trama? </l...
Comunicación TCP sobre X.25 y Frame Relay X.25 Frame Relay Receptor Emisor Receptor Emisor 1 1 2 8 7 6 3 2 4 5 15 3 12 14 ...
Nivel de enlace en Internet <ul><li>El protocolo IP está diseñado para funcionar sobre casi cualquier medio físico (‘IP ov...
 
PPP (Point to Point Protocol) <ul><li>El protocolo de enlace ’característico’ de Internet es el PPP, que se utiliza en: </...
Formato de trama PPP <ul><li>Utiliza estructura tipo HDLC: </li></ul>1 1 1 1 ó 2 Variable 2 ó 4 1 <ul><li>La trama siempre...
Componentes de PPP <ul><li>LCP (Link Control Protocol): negocia parámetros del nivel de enlace en el inicio de la conexión...
Funcionamiento de CHAP (Challenge Handshake Protocol) Enviar  identificador (userid) Soy Pedro Ruiz a#$frhg&&&% Q324$*& OK...
Nivel de enlace en Frame Relay Estructura de trama: Bytes   1 2 0-8188 2 1 <ul><li>No se realiza reenvío en caso de error...
Sumario <ul><li>Funciones de la capa de enlace </li></ul><ul><li>Protocolos de parada/espera </li></ul><ul><li>Protocolos ...
Nivel de enlace en ATM <ul><li>Corresponde a la subcapa TC (Transmission Convergence) de la capa física del modelo ATM </l...
Estructura de la cabecera de celda ATM Bytes   4 1 El HEC (Header Error Control) es un CRC de los primeros 4 bytes. Se ut...
Identificación de celdas ATM <ul><li>Las celdas no llevan un delimitador. Para averiguar donde empiezan se usan dos técnic...
 
 
 
Upcoming SlideShare
Loading in …5
×

Cap 3 capa_enlace

935 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
935
On SlideShare
0
From Embeds
0
Number of Embeds
66
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cap 3 capa_enlace

  1. 1. Capítulo 3 La Capa de Enlace Roberto Ferro
  2. 2. Sumario <ul><li>Funciones de la capa de enlace </li></ul><ul><li>Protocolos de parada/espera </li></ul><ul><li>Protocolos con ventana deslizante </li></ul><ul><li>Protocolos de nivel de enlace: HDLC, PPP (Internet) y LAP-F (Frame Relay) </li></ul><ul><li>Nivel de enlace en ATM </li></ul>
  3. 3. La capa de enlace en el contexto del modelo de capas
  4. 5. Funciones de la capa de enlace <ul><li>Obligatorias: </li></ul><ul><ul><li>Identificar tramas (agrupación de bits que se intercambia a nivel de enlace) </li></ul></ul><ul><ul><li>Detección de errores </li></ul></ul><ul><li>Opcionales (servicio orientado a conexión): </li></ul><ul><ul><li>Control de flujo </li></ul></ul><ul><ul><li>Corrección de errores </li></ul></ul>
  5. 6. Tipo de transmisión <ul><li>Asíncrona: cada byte se envía de forma independiente. Cuando no hay datos que enviar la línea está en silencio </li></ul><ul><li>Síncrona: la trama se envía sin separación entre los bytes. Cuando no hay nada que enviar el emisor envía una secuencia determinada de forma ininterrumpida para asegurar que no se pierde el sincronismo. </li></ul>
  6. 7. Características de la transmisión asíncrona
  7. 8. Técnicas de identificación de tramas <ul><li>Contador de caracteres: posibles problemas por pérdida de sincronismo. </li></ul><ul><li>Caracteres de inicio y final con caracteres de relleno: normalmente ASCII DLE STX para inicio y DLE ETX para final, con DLE de relleno. </li></ul><ul><li>Secuencia de bits indicadora de inicio y final, con bits de relleno: normalmente 01111110; si en los datos aparecen cinco bits seguidos a 1 se intercala automáticamente un 0. </li></ul><ul><li>Violaciones de código a nivel físico : se utiliza en algunas redes locales . </li></ul>
  8. 11. Control de flujo <ul><li>Necesario para no 'agobiar' al receptor. </li></ul><ul><li>Se realiza normalmente a nivel de transporte, también a veces a nivel de enlace. </li></ul><ul><li>  Utiliza mecanismos de retroalimentación (el receptor advierte al emisor). Por tanto: </li></ul><ul><ul><li>Requiere un canal semi-duplex o full-duplex </li></ul></ul><ul><ul><li>No se utiliza en emisiones multicast/broadcast </li></ul></ul><ul><li>Suele ir unido a la corrección de errores </li></ul><ul><li>N o debe limitar la eficiencia del canal. </li></ul>
  9. 12. Tasa de errores (BER) <ul><li>La tasa de errores de un medio de transmisión se mide por la BER (Bit Error Rate) que se define como: </li></ul><ul><li>BER = bits erróneos / bits transmitidos </li></ul><ul><li>Un BER de 10 -6 significa que hay un bit erróneo por cada millón de bits transmitidos </li></ul>
  10. 13. Valores de BER habituales >10 -5 GSM <10 -5 Enlaces telefónicos, satélite, ADSL, CATV < 10 -8 LANs de cobre, Radioenlaces fijos (microondas) < 10 -12 Fibras ópticas BER típico Medio físico
  11. 14. Códigos de control de errores <ul><li>Los códigos pueden ser: </li></ul><ul><ul><li>Detectores de errores : p. ej. CRC (Cyclic Redundancy Check) </li></ul></ul><ul><ul><li>Correctores de errores: p. ej. RS (Reed-Solomon). Un RS con 10% de overhead puede mejorar el BER en 10 -4 (p. ej. de 10 -5 a 10 -9 ) </li></ul></ul><ul><li>Los códigos detectores tienen menos overhead, pues necesitan incorporar menos redundancia. </li></ul>
  12. 15. Estrategias de control de errores Código corrector (ej. RS) Simplex (o emisión broadcast/multicast) Alta o muy alta Código detector con reenvío de tramas erróneas Dúplex Alta o muy alta Código detector sin reenvío de tramas erróneas (se hará, si acaso, a nivel de transporte) Dúplex Baja o muy baja Estrategia Canal de comunicación Tasa de error
  13. 16. STX ETX Contenido de la trama Bits de Paridad transversales Bits de Paridad longitudinales Ejemplo de uso de Interleaving 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 B 0 B 1 B 2 B 3 B 4 B 5 B 6 P R
  14. 17. Conteo de caracteres
  15. 18. Caracteres de principio y fin
  16. 19. Banderas e inserción de bits
  17. 20. Códigos correctores y detectores de error <ul><li>Qué es un error ? </li></ul><ul><ul><li>Una trama tiene m bits y se agregan r bits de redundancia o de chequeo </li></ul></ul><ul><ul><li>Los datos a transmitir serán n = m + r </li></ul></ul><ul><li>Distancia de Hamming es el número de bits en que difieren dos palabras del código </li></ul><ul><li>La mínima es la distancia del código </li></ul><ul><li>En general hay 2 m mensajes válidos pero no todos los 2 n lo son </li></ul>
  18. 21. Códigos correctores y detectores de error (2) <ul><li>La detección y corrección se basa en la distancia de Hamming del código </li></ul><ul><ul><li>Para detectar d errores necesito un código de distancia d+1 </li></ul></ul><ul><ul><li>Para corregir d errores necesito un código de distancia 2d+1 </li></ul></ul><ul><li>Ej: un bit de paridad agregado a los datos </li></ul><ul><ul><li>es de distancia 2, un error invalida la palabra </li></ul></ul><ul><ul><li>sirve para detectar errores simples </li></ul></ul>
  19. 22. Códigos correctores y detectores de error (3) <ul><li>Si queremos un código para corregir errores simples con n = m + r </li></ul><ul><ul><li>Si invertimos cada uno de los n bits de una palabra de código tenemos n palabras de código ilegales a distancia 1 de la correcta </li></ul></ul><ul><ul><li>Entonces cada uno de los 2 m mensajes legales, debe tener n+1 palabras dedicadas que puedan ser unívocamente asignadas a él </li></ul></ul><ul><ul><li>(n+1) 2 m <= 2 n => (m + r +1) <= 2 r </li></ul></ul><ul><ul><li>dado m hay un límite inferior para r </li></ul></ul>
  20. 23. Códigos de Hamming <ul><li>Ejemplo real del límite teórico </li></ul><ul><li>Las posiciones 2 i son ocupadas por los bits de chequeo (1,2,4,8, etc) </li></ul><ul><li>Las restantes se ubican los datos </li></ul><ul><li>Ejemplo: </li></ul><ul><ul><li>Palabras de 7 bits, se codifican en 7+4=11 bits ya que 7+4+1 <= 2 4 (menos de 4 no cumple) </li></ul></ul>
  21. 24. Códigos de Hamming (2) <ul><ul><ul><li>Palabra 1011001 queda ab1c011d001 </li></ul></ul></ul><ul><ul><ul><li>hay unos en posición 3,6,7 y 11 </li></ul></ul></ul><ul><ul><ul><ul><li>11=1011 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>7=0111 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>6=0110 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>3=0011 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>suma=1001=dcba </li></ul></ul></ul></ul><ul><ul><ul><li>transmito 10 1 0 011 1 001 </li></ul></ul></ul><ul><ul><ul><li>en recepción sumo el índice de los que tienen 1 y si da 0 está bien, sino tengo la ubicación del error </li></ul></ul></ul>
  22. 25. Códigos de Hamming
  23. 26. Códigos de Hamming <ul><li>Se tiene una matriz que es multiplicada por la palabra recibida, si ésta es correcta se tiene un resultado ( síndrome ) igual al polinomio nulo, en otro caso se obtiene en el síndrome la posición del bit erróneo. </li></ul>
  24. 27. Códigos de Hamming
  25. 28. Códigos de Hamming
  26. 29. Códigos de Hamming
  27. 30. Códigos de Hamming
  28. 31. Códigos de Hamming
  29. 32. Detection del error
  30. 33. Ráfagas y Matrices <ul><li>Hamming funciona para errores de un bit </li></ul><ul><li>Hay una “pisada”para que sirvan para errores en ráfagas </li></ul><ul><li>Agrupar en forma de matriz y mandar por columnas </li></ul><ul><li>Consideraciones: </li></ul><ul><ul><li>largo de la ráfaga </li></ul></ul><ul><ul><li>el mensaje llega retardado </li></ul></ul>
  31. 34. Códigos detectores de error <ul><li>Si la tasa de error es baja conviene detectar y retransmitir a corregir </li></ul><ul><li>En trama de 1000 bits se necesitan 10 bits de test para corregir y alcanza con un bit para detectar </li></ul><ul><li>Si tengo tasa de error de 10 -6 </li></ul><ul><ul><li>con corrección: 10*1000=10000 bits de mas </li></ul></ul><ul><ul><li>con detección y retransmisión: envió 1*1000+1001=2001 bits de mas </li></ul></ul>
  32. 35. Códigos detectores de error <ul><li>El problema con lo anterior es que con 1 bit la probabilidad de detección de una ráfaga es 0.5 </li></ul><ul><li>Se pueden hacer matrices que mejora </li></ul><ul><li>Se usan en general códigos polinómicos llamados también códigos de redundancia cíclica (CRC) </li></ul>
  33. 36. Códigos polinómicos <ul><li>Se tratan los mensajes de bits como coeficientes de un polinomio </li></ul><ul><li>Si tengo un mensaje de k bits, c k-1 ..c 0 lo puedo ver como un polinomio: </li></ul><ul><ul><li>c k-1 x k-1 +c k-2 x k-2 +...+c 0 x 0 </li></ul></ul><ul><li>Tengo un polinomio de grado k-1 </li></ul><ul><li>Ej: 110001 se representa como x 5 +x 4 +x 0 </li></ul>
  34. 37. Códigos polinómicos (2) <ul><li>La aritmética se hace en módulo 2, no hay acarreos y tanto la suma como la resta son idénticas al XOR </li></ul><ul><li>Ejemplos </li></ul><ul><li>División </li></ul>
  35. 38. Códigos polinómicos (3) <ul><li>El transmisor y receptor deben ponerse de acuerdo en el uso del llamado polinomio generador G(x) </li></ul><ul><li>Los coeficientes más y menos significativos de G(x) deben ser 1 </li></ul><ul><li>El mensaje de m bits se representa como M(x) y la trama a transmitir es más larga que el largo de G(x) </li></ul>
  36. 39. Códigos polinómicos (4) <ul><li>La idea es agregar una suma de comprobación al final de la trama de modo tal que el polinomio representado por el conjunto sea divisible entre G(x) </li></ul><ul><li>El receptor divide lo que recibe entre G(x), si el resto es 0 no hay errores. Si es distinto de 0 es porque hubo errores en la transmisión </li></ul>
  37. 40. Códigos polinómicos (5) <ul><li>El algoritmo es: </li></ul><ul><ul><li>Si r es el grado de G(x), agrego r bits en 0 en la parte menos significativa de la trama. Lo que tengo entonces es la representación de x r M(x) </li></ul></ul><ul><ul><li>Divido x r M(x) entre G(x) con aritmética módulo 2 y obtengo un resto R(x) (con menos de r bits) </li></ul></ul><ul><ul><li>Resto a R(x) a x r M(x) y el resultado es lo que se transmite T(x) que obviamente es divisible entre G(x) </li></ul></ul>
  38. 41. Códigos polinómicos
  39. 42. Códigos polinómicos (6) <ul><li>Analicemos la potencia del método </li></ul><ul><li>Supongamos que hay un error y el receptor recibe T(x)+E(x) donde E(x) es el error y tiene un 1 en cada bit que se invirtió </li></ul><ul><li>El receptor divide [T(x)+E(x)]/G(x) y como T(x)/G(x) = 0, el resultado es E(x)/G(x) </li></ul><ul><li>Solo se escapan los patrones de error que correspondan a un polinomio divisible entre G(x) </li></ul>
  40. 43. Códigos polinómicos (7) <ul><li>Si hay un error simple, E(x)=x i (*) </li></ul><ul><ul><li>lo detectamos si G(x) tiene más de dos términos </li></ul></ul><ul><li>Si hay dos errores, E(x)=x i +x j =x j (x i-j +1) </li></ul><ul><ul><li>si G(x) no es divisible por x (*) </li></ul></ul><ul><ul><li>lo detectamos si G(x) no divide a x k +1 para cualquier k<i-j (largo de la trama) </li></ul></ul><ul><ul><li>Hay polinomios de bajo grado que cumplen </li></ul></ul><ul><ul><ul><li>Ej. x 15 +x 14 +1 no divide x k +1 para k<32768 </li></ul></ul></ul>
  41. 44. Códigos polinómicos (8) <ul><li>Si hay un número impar de bits con error, E(x) contiene un número impar de términos </li></ul><ul><ul><li>no hay polinomios con esta característica (mod 2) que sean divisibles entre x+1. Detectamos esto si G(x) tiene a x+1 como factor </li></ul></ul><ul><li>Si hay una ráfaga de largo <=r es detectada </li></ul><ul><ul><li>Ráfaga de largo k es x i (x k-1 +...+1) </li></ul></ul><ul><ul><li>Si G(x) tiene x 0 no divide a x i entonces si k-1<r nunca será divisible </li></ul></ul><ul><ul><li>Si k=r+1 solo será divisible si la ráfaga=G(x) </li></ul></ul>
  42. 45. Códigos polinómicos (9) <ul><li>Hay polinomios estandarizados: </li></ul><ul><ul><li>CRC-12 x 12 +x 11 +x 3 +x 2 +x 1 +1 (carácter=6) </li></ul></ul><ul><ul><li>CRC-16 x 16 +x 15 +x 2 +1 (carácter=8) </li></ul></ul><ul><ul><li>CRC-CCITT x 16 +x 12 +x 5 +1 (carácter=8) </li></ul></ul><ul><li>Los de 16bits detectan los siguientes errores </li></ul><ul><ul><ul><li>100% simples y dobles </li></ul></ul></ul><ul><ul><ul><li>100% los de número impar de bits </li></ul></ul></ul><ul><ul><ul><li>100% de ráfagas de largo 16 o menos </li></ul></ul></ul><ul><ul><ul><li>99.997% de ráfagas de 17 bits </li></ul></ul></ul><ul><ul><ul><li>99.998% de ráfagas de 18 o más bits </li></ul></ul></ul>
  43. 46. Sumario <ul><li>Funciones de la capa de enlace </li></ul><ul><li>Protocolos de parada/espera </li></ul><ul><li>Protocolos con ventana deslizante </li></ul><ul><li>Protocolos de nivel de enlace: HDLC, PPP (Internet) y LAP-F (Frame Relay) </li></ul><ul><li>Nivel de enlace en ATM </li></ul>
  44. 47. Protocolo de parada y espera <ul><li>Es el protocolo fiable orientado a conexión más sencillo </li></ul><ul><li>Impide un uso eficiente de los enlaces, p. ej. Línea punto a punto de A a B de 64 Kb/s de 4000 Km de longitud, tramas de 640 bits: </li></ul><ul><ul><li>0 ms: A empieza el envío de trama T1 </li></ul></ul><ul><ul><li>10 ms: A termina envío de T1 y espera </li></ul></ul><ul><ul><li>20 ms: B empieza recepción de T1 </li></ul></ul><ul><ul><li>30 ms: B termina recepción de T1; envía ACK de T1 </li></ul></ul><ul><ul><li>50 ms: A recibe ACK de T1; empieza envío de T2 </li></ul></ul><ul><ul><li>Eficiencia: 10/50 = 0,2 = 20% </li></ul></ul>
  45. 48. Parada y espera 0 ms 10 ms 20 ms 30 ms 40 ms 50 ms T1 T1 T1 T1 ACK ACK ACK T2 4000 2000 0 Km
  46. 49. Sumario <ul><li>Funciones de la capa de enlace </li></ul><ul><li>Protocolos de parada/espera </li></ul><ul><li>Protocolos con ventana deslizante </li></ul><ul><li>Protocolos de nivel de enlace: HDLC, PPP (Internet) y LAP-F (Frame Relay) </li></ul><ul><li>Nivel de enlace en ATM </li></ul>
  47. 50.   Protocolo de ventana deslizante <ul><li>Implementa un pipeline para evitar los tiempos muertos en la línea: </li></ul><ul><ul><li>0 ms: A envía T1 </li></ul></ul><ul><ul><li>10 ms: A envía T2; </li></ul></ul><ul><ul><li>20 ms: A envía T3; B empieza a recibir T1 </li></ul></ul><ul><ul><li>30 ms: A envía T4; B envía ACK(T1) </li></ul></ul><ul><ul><li>40 ms: A envía T5 </li></ul></ul><ul><ul><li>50 ms: A recibe ACK(T1) y envía T6 </li></ul></ul><ul><ul><li>Ventana mínima para 100% de ocupación: 5 </li></ul></ul><ul><li>Resuelve problema de eficiencia a cambio de mayor complejidad y espacio en buffers </li></ul>
  48. 51. Ventana deslizante 0 ms 10 ms 20 ms 30 ms 40 ms 50 ms T1 T1 T1 T2 ACK(1) ACK(1) ACK(1) T6 T2 T4 T3 T5 T4 T3 ACK(2) ACK(3) ACK(2) 4000 2000 0 Km
  49. 52. Tamaño de ventana <ul><li>La ventana mínima para 100% de ocupación es la que ‘llena el hilo’ de datos en ambos sentidos, mas uno: </li></ul><ul><li>W = 2  *v/t + 1 </li></ul><ul><ul><li>W: tamaño de ventana </li></ul></ul><ul><ul><li> : tiempo de propagación </li></ul></ul><ul><ul><li>v: velocidad de la línea </li></ul></ul><ul><ul><li>t: tamaño de trama </li></ul></ul><ul><ul><li>Ej.:  =20ms, v = 64 Kb/s, t = 640 bits  W = 5 </li></ul></ul>
  50. 53. Tamaño de ventana <ul><li>La ventana mínima para 100% de ocupación es la que ‘llena el hilo’ de datos en ambos sentidos, mas uno: </li></ul><ul><li>W = 2  *v/t + 1 </li></ul><ul><ul><li>W: tamaño de ventana </li></ul></ul><ul><ul><li> : tiempo de propagación </li></ul></ul><ul><ul><li>v: velocidad de la línea </li></ul></ul><ul><ul><li>t: tamaño de trama (ETH) </li></ul></ul><ul><ul><li>Ej.:  =20ms, v = 300 Kb/s, t = 12000 bits  W = 2 </li></ul></ul>
  51. 54. Tamaño de ventana <ul><li>La ventana mínima para 100% de ocupación es la que ‘llena el hilo’ de datos en ambos sentidos, mas uno: </li></ul><ul><li>W = 2  *v/t + 1 </li></ul><ul><ul><li>W: tamaño de ventana </li></ul></ul><ul><ul><li> : tiempo de propagación </li></ul></ul><ul><ul><li>v: velocidad de la línea </li></ul></ul><ul><ul><li>t: tamaño de trama, FR 5 octetos </li></ul></ul><ul><ul><li>Ej.:  =20ms, v = 128 Kb/s, t = 400 bits  W = 9 </li></ul></ul>
  52. 55. Protocolos de ventana deslizante <ul><li>El protocolo puede ser: </li></ul><ul><ul><li>Retroceso n: no se acepta una trama hasta haber recibido las anteriores </li></ul></ul><ul><ul><li>Repetición selectiva : se admite cualquier trama en el rango esperado y se pide solo la que falta. </li></ul></ul><ul><li>Repetición selectiva es más complejo pero más eficiente, y requiere mas espacio en buffers en el receptor. </li></ul><ul><li>Tamaño de ventana: </li></ul><ul><ul><li>Retroceso n: Número de secuencia – 1 </li></ul></ul><ul><ul><li>Repetición selectiva: Número de secuencia/2 </li></ul></ul>
  53. 57. Retroceso n Repetición selectiva
  54. 59. Sumario <ul><li>Funciones de la capa de enlace </li></ul><ul><li>Protocolos de parada/espera </li></ul><ul><li>Protocolos con ventana deslizante </li></ul><ul><li>Protocolos de nivel de enlace: HDLC, PPP (Internet) y LAP-F (Frame Relay) </li></ul><ul><li>Nivel de enlace en ATM </li></ul>
  55. 60. Familia de protocolos HDLC (High level Data Link Control) <ul><li>HDLC es un estándar ISO. Deriva del SDLC desarrollado por IBM en 1972 </li></ul><ul><li>Es un protocolo de ventana deslizante muy completo </li></ul><ul><li>Prácticamente todos los protocolos de enlace actuales son subsets de HDLC: </li></ul><ul><ul><li>PPP: Internet </li></ul></ul><ul><ul><li>LAP-B: X.25 </li></ul></ul><ul><ul><li>LAP-F: Frame Relay </li></ul></ul><ul><ul><li>LLC (IEEE 802.2): redes locales </li></ul></ul><ul><ul><li>LAPM: módems RTC </li></ul></ul>
  56. 61. Formato de trama HDLC Bits  8 8 8 8 16 ó 32  0 <ul><li>Se utiliza relleno de bits </li></ul><ul><li>El campo dirección siempre vale 11111111 (dirección broadcast) salvo en líneas multipunto. </li></ul><ul><li>El campo control es el que realiza todas las tareas propias del protocolo </li></ul><ul><li>El CRC es normalmente de 16 bits, pero puede ser de 32 </li></ul>01111110 (delimit.) CRC Datos Control Dirección 01111110 (delimit.)
  57. 62. Tipos de tramas HDLC <ul><li>Las tramas HDLC pueden ser de tres tipos según el valor de los primeros bits del campo control: </li></ul>De información De supervisión No numerada 1 3 1 3 2 2 1 3 2 2 1 3 P/F: Polling/Final (solo utilizado en líneas multipunto) ORDEN 2/2 P/F ORDEN 1/2 1 1 NEXT P/F ORDEN 1 0 NEXT P/F SEQ 0
  58. 63. Comandos en tramas de supervisión HDLC Petición de reenvío cuando se usa retransmisión selectiva SELECTIVE REJECT 11 Acuse de recibo negativo (NAK). Pide reenvío cuando se usa retroceso n REJECT 01 Recepción correcta pero pide suspender transmisión (control de flujo) RECEIVE NOT READY 10 ACK cuando no hay tráfico de vuelta para piggybacking RECEIVE READY 00 Significado Comando Orden
  59. 64. Elaboración de tramas HDLC <ul><li>En el emisor: </li></ul><ul><ul><li>Concatenar campos dirección, control y datos </li></ul></ul><ul><ul><li>Calcular el CRC de la cadena resultante </li></ul></ul><ul><ul><li>Realizar el relleno de bits poniendo un bit a cero siempre que en la cadena a enviar aparezcan cinco unos seguidos </li></ul></ul><ul><ul><li>Añadir a la trama los delimitadores de inicio y final (01111110). Si se envían dos tramas seguidas el delimitador de final de una sirve como inicio de la siguiente </li></ul></ul><ul><li>El receptor procede de manera inversa (4,3,2,1) </li></ul>
  60. 65. Funcionamiento de HDLC <ul><li>¿Que pasa si en la transmisión desaparecen los dos últimos bytes (el CRC) de una trama? </li></ul><ul><li>¿Que pasa si una trama se altera y aparece en ella la secuencia ‘01111110’? </li></ul><ul><li>¿Que pasa si el flujo de datos se altera y desaparece un delimitador entre dos tramas? </li></ul>
  61. 66. Comunicación TCP sobre X.25 y Frame Relay X.25 Frame Relay Receptor Emisor Receptor Emisor 1 1 2 8 7 6 3 2 4 5 15 3 12 14 7 10 9 8 16 5 4 13 6 11
  62. 67. Nivel de enlace en Internet <ul><li>El protocolo IP está diseñado para funcionar sobre casi cualquier medio físico (‘IP over everything’): </li></ul>1994 1483, 1577 ATM 1993 1490 Frame Relay 1990 1171, 1663 PPP 1990 1188, 1390 FDDI 1988 1042 802.x 1984 894 Ethernet 1983 877, 1356 X.25 Año RFC Medio
  63. 69. PPP (Point to Point Protocol) <ul><li>El protocolo de enlace ’característico’ de Internet es el PPP, que se utiliza en: </li></ul><ul><ul><li>Líneas dedicadas punto a punto </li></ul></ul><ul><ul><li>Conexiones RTC analógicas o digitales (RDSI) </li></ul></ul><ul><ul><li>Conexiones de alta velocidad sobre enlaces SONET/SDH </li></ul></ul><ul><li>Puede funcionar de forma síncrona o asíncrona (puerto COM de un PC) </li></ul><ul><li>Es multiprotocolo, una comunicación soporta simultáneamente varios protocolos a nivel de red. </li></ul>
  64. 70. Formato de trama PPP <ul><li>Utiliza estructura tipo HDLC: </li></ul>1 1 1 1 ó 2 Variable 2 ó 4 1 <ul><li>La trama siempre tiene un número entero de bytes </li></ul><ul><li>El campo dirección no se utiliza, siempre vale 11111111 </li></ul><ul><li>El campo control casi siempre vale 00000011, que especifica trama no numerada (funcionamiento sin ACK). </li></ul><ul><li>Generalmente en el inicio se negocia omitir los campos dirección y control (compresión de cabeceras) </li></ul>Bytes  Delimitad. 01111110 CRC Datos Protocolo Control 00000011 Dirección 11111111 Delimitad. 01111110
  65. 71. Componentes de PPP <ul><li>LCP (Link Control Protocol): negocia parámetros del nivel de enlace en el inicio de la conexión, Ej.: </li></ul><ul><ul><li>Supresión de campos dirección y control </li></ul></ul><ul><ul><li>Uso de protocolos fiables (con ACK) </li></ul></ul><ul><li>NCP (Network Control Protocol): negocia parámetros del nivel de red: </li></ul><ul><ul><li>Protocolos soportados </li></ul></ul><ul><ul><li>Asignación dinámica de dirección IP. </li></ul></ul><ul><li>CHAP (Challenge Handshake Authentication Protocol): realiza tarea de autentificación de usuario. </li></ul>
  66. 72. Funcionamiento de CHAP (Challenge Handshake Protocol) Enviar identificador (userid) Soy Pedro Ruiz a#$frhg&&&% Q324$*& OK Usar password, calcular respuesta MD5 y enviar CLIENTE SERVIDOR Enviar cadena de caracteres aleatoria (reto). Usar password , calcular respuesta MD5. Comprobar y responder Pw: saturno Pw: saturno Conexión establecida
  67. 73. Nivel de enlace en Frame Relay Estructura de trama: Bytes  1 2 0-8188 2 1 <ul><li>No se realiza reenvío en caso de error </li></ul><ul><li>El campo dirección contiene la información del circuito virtual y los parámetros propios de las funciones de Frame Relay; su estudio corresponde al nivel de red. </li></ul>01111110 CRC Datos Dirección 01111110
  68. 74. Sumario <ul><li>Funciones de la capa de enlace </li></ul><ul><li>Protocolos de parada/espera </li></ul><ul><li>Protocolos con ventana deslizante </li></ul><ul><li>Protocolos de nivel de enlace: HDLC, PPP (Internet) y LAP-F (Frame Relay) </li></ul><ul><li>Nivel de enlace en ATM </li></ul>
  69. 75. Nivel de enlace en ATM <ul><li>Corresponde a la subcapa TC (Transmission Convergence) de la capa física del modelo ATM </li></ul><ul><li>Estructura de una celda ATM: </li></ul>5 48 Bytes  El tamaño (48 bytes) fue elegido por la ITU como compromiso entre la postura de las PTT europeas (16-32 bytes) y los fabricantes de ordenadores (128-64 Bytes) Carga útil Cabecera
  70. 76. Estructura de la cabecera de celda ATM Bytes  4 1 El HEC (Header Error Control) es un CRC de los primeros 4 bytes. Se utiliza para comprobar la validez de la información de cabecera que se considera crítica. ATM no incorpora un CRC de la carga útil. Lo hará, si procede, el protocolo de transporte (AAL). HEC Información de circuito virtual
  71. 77. Identificación de celdas ATM <ul><li>Las celdas no llevan un delimitador. Para averiguar donde empiezan se usan dos técnicas: </li></ul><ul><ul><li>Características del medio físico. Por ejemplo en SONET/SDH la información de control de línea contiene un puntero que indica el principio de una celda ATM en la trama </li></ul></ul><ul><ul><li>Tanteo del HEC: se busca en el flujo de bits recibido una secuencia de 40 bits en la que los ocho últimos sean el HEC de los 32 primeros. Cuando se encuentra uno válido se confirma en las cuatro celdas siguientes </li></ul></ul>

×