Servicios <ul><li>Servicios parecidos a la capa de red </li></ul><ul><ul><ul><li>Orientados a conexión </li></ul></ul></ul...
Relación entre capas
Anidado de TPDU
Calidad de servicio <ul><li>La capa de transporte debe mejorar la QoS de la subred </li></ul><ul><li>Posibles parámetros d...
Primitivas <ul><li>Lo más interesante es el servicio orientado a conexión </li></ul><ul><li>Se trata de brindar un flujo c...
Diagrama de estados cliente: línea sólida - servidor: línea punteada
Primitivas con Berkeley sockets
Capas de Enlace y Transporte <ul><li>Las funciones de capa de transporte son similares a las de capa de enlace de datos </...
Capas de Enlace y Transporte <ul><li>Diferencias: </li></ul><ul><ul><li>Direccionamiento </li></ul></ul><ul><ul><li>Comple...
Direccionamiento <ul><li>Necesidad de conocer la máquina destino </li></ul><ul><li>Necesidad de identificar el servicio </...
Direcciones: TSAP  NSAP
Servidor de procesos
Establecimiento de conexión <ul><li>Más difícil de lo que parece </li></ul><ul><li>Problema de los duplicados retardados P...
Establecimiento de conexión (Tomlinson) <ul><li>Establecer conexión </li></ul><ul><ul><li>Reloj de tiempo real en cada máq...
Números de secuencia Zona prohibida
Establecimiento en 3 fases
Fin de conexión <ul><li>Terminar conexión </li></ul><ul><ul><li>simétrica </li></ul></ul><ul><ul><ul><li>se cierran separa...
Desconexión con pérdida de información
Problema de los dos ejércitos
Diferentes escenarios de corte
Buffers y control de flujo <ul><li>Máquinas con muchas conexiones simultáneas </li></ul><ul><li>¿ Cómo optimizar el buffer...
Diferentes políticas de manejo de buffers
Posible deadlock
Multiplexado <ul><li>Multiplexado  </li></ul><ul><ul><li>Upward multiplexing </li></ul></ul><ul><ul><ul><li>políticas de p...
Multiplexado: Upward y downward
Recuperación de caídas <ul><li>Recuperación frente a problemas </li></ul><ul><ul><li>Caídas de la red </li></ul></ul><ul><...
Caídas en las máquinas Según estrategia del servidor y el cliente <ul><ul><ul><li>  A - Ack, W - Write, C - Crash </li></u...
Transmission Control Protocol TCP <ul><li>Objetivo: Flujo confiable de bytes sobre una red no confiable </li></ul><ul><ul>...
Modelo de servicio de TCP <ul><li>Conexión entre 2 sockets </li></ul><ul><li>Identificación de los sockets formada por dir...
TCP <ul><li>Las conexiones TCP son un flujo de bytes, no de mensajes (capas superiores) </li></ul><ul><li>Puede esperar pa...
Mensajes y bytes <ul><li>Un mensaje (ABCD) es enviado en 4 paquetes IP separados, pero devuelto a la aplicación destino co...
Protocolo TCP <ul><li>Número de secuencia de 32 bits </li></ul><ul><li>Unidad de datos = Segmento </li></ul><ul><li>Encabe...
Problemas con los segmentos <ul><li>Pérdidas de segmentos por rutas congestionadas o enlaces caídos </li></ul><ul><li>Segm...
Encabezado TCP
Pseudo-encabezado para cálculo del checksum
Opciones <ul><li>Escala de la ventana. </li></ul><ul><li>Repetición selectiva (nak) </li></ul>
Manejo de conexiones
<ul><li>Estados de la conexión </li></ul>
Significado de los estados
Política de transmisión en TCP <ul><li>El que recibe informa sobre el tamaño de la ventana (tamaño de buffer disponible) <...
Manejo de ventana en TCP
Problemas de performance <ul><li>Algoritmo de Nagle </li></ul><ul><ul><ul><li>esperar el ack del primer byte y luego buffe...
Ventana tonta
Control de congestión en TCP <ul><li>Hipótesis: las pérdidas de paquetes son por congestión (los enlaces son buenos ahora)...
Control de flujo y congestión
Ventana de congestión
Gestión de temporizadores <ul><li>Varios temporizadores </li></ul><ul><ul><li>el más importante es el de retransmisión </l...
Dispersión de retardos en capa de enlace y de transporte
UDP <ul><li>UDP no orientado a conexión </li></ul><ul><li>Básicamente es un paquete IP con un encabezado mínimo de capa de...
Upcoming SlideShare
Loading in …5
×

Capa de transporte

1,007 views

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,007
On SlideShare
0
From Embeds
0
Number of Embeds
437
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Capa de transporte

  1. 1.
  2. 2. Servicios <ul><li>Servicios parecidos a la capa de red </li></ul><ul><ul><ul><li>Orientados a conexión </li></ul></ul></ul><ul><ul><ul><li>No orientados a conexión </li></ul></ul></ul><ul><li>¿ Porqué dos capas distintas ? </li></ul><ul><li>La capa de transporte sólo depende de los usuarios finales y la de red no </li></ul><ul><li>Puede haber varias capas de transporte especializadas en tipos de tráfico. </li></ul>
  3. 3. Relación entre capas
  4. 4. Anidado de TPDU
  5. 5. Calidad de servicio <ul><li>La capa de transporte debe mejorar la QoS de la subred </li></ul><ul><li>Posibles parámetros de QoS </li></ul><ul><li>Negociación de opciones </li></ul>
  6. 6. Primitivas <ul><li>Lo más interesante es el servicio orientado a conexión </li></ul><ul><li>Se trata de brindar un flujo confiable de datos de extremo a extremo </li></ul><ul><li>Ejemplo de primitivas de una capa de transporte: </li></ul>
  7. 7. Diagrama de estados cliente: línea sólida - servidor: línea punteada
  8. 8. Primitivas con Berkeley sockets
  9. 9. Capas de Enlace y Transporte <ul><li>Las funciones de capa de transporte son similares a las de capa de enlace de datos </li></ul><ul><li>Control de errores </li></ul><ul><li>Secuenciamiento </li></ul><ul><li>Control de flujo </li></ul><ul><li>Pero hay diferencias... </li></ul>
  10. 10. Capas de Enlace y Transporte <ul><li>Diferencias: </li></ul><ul><ul><li>Direccionamiento </li></ul></ul><ul><ul><li>Complejidad en el establecimiento de conexión </li></ul></ul><ul><ul><li>Capacidad de almacenamiento en la red </li></ul></ul><ul><ul><li>Diferencias de retardos </li></ul></ul>
  11. 11. Direccionamiento <ul><li>Necesidad de conocer la máquina destino </li></ul><ul><li>Necesidad de identificar el servicio </li></ul><ul><li>Ej en TCP/IP dirección IP + puerto TCP </li></ul><ul><li>Puertos bien conocidos </li></ul><ul><li>Servidor de procesos (escucha en todos los puertos) </li></ul><ul><li>Servidor de nombres (ej. DNS) </li></ul>
  12. 12. Direcciones: TSAP NSAP
  13. 13. Servidor de procesos
  14. 14. Establecimiento de conexión <ul><li>Más difícil de lo que parece </li></ul><ul><li>Problema de los duplicados retardados Posible repetición de conexiones </li></ul><ul><li>Posibles soluciones: </li></ul><ul><ul><li>Direcciones por una única vez </li></ul></ul><ul><ul><li>Identificación de conexión (y caídas ?) </li></ul></ul><ul><ul><li>Vida limitada de los paquetes </li></ul></ul><ul><ul><ul><li>subred restringida, contador de saltos, timestamp </li></ul></ul></ul>
  15. 15. Establecimiento de conexión (Tomlinson) <ul><li>Establecer conexión </li></ul><ul><ul><li>Reloj de tiempo real en cada máquina que no se apaga </li></ul></ul><ul><ul><li>Tiempo T=múltiplo de tiempo de vida de los paquetes </li></ul></ul><ul><ul><li>Zona prohibida </li></ul></ul><ul><ul><li>Conexión en tres tiempos con secuencias independientes para cada extremo </li></ul></ul>
  16. 16. Números de secuencia Zona prohibida
  17. 17. Establecimiento en 3 fases
  18. 18. Fin de conexión <ul><li>Terminar conexión </li></ul><ul><ul><li>simétrica </li></ul></ul><ul><ul><ul><li>se cierran separadamente ambos sentidos </li></ul></ul></ul><ul><ul><ul><li>complicación del problema de los dos ejércitos </li></ul></ul></ul><ul><ul><li>asimétrica </li></ul></ul><ul><ul><ul><li>puede provocar pérdida de datos </li></ul></ul></ul>
  19. 19. Desconexión con pérdida de información
  20. 20. Problema de los dos ejércitos
  21. 21. Diferentes escenarios de corte
  22. 22. Buffers y control de flujo <ul><li>Máquinas con muchas conexiones simultáneas </li></ul><ul><li>¿ Cómo optimizar el buffer ? Políticas </li></ul><ul><li>Buffer dinámico </li></ul><ul><ul><li>Posible deadlock si se pierde actualización </li></ul></ul><ul><li>Limitaciones por capacidad de la red </li></ul><ul><li>Ventana dependiendo de la carga: W = c.r </li></ul><ul><ul><ul><li>c = capacidad de la red en paquetes por segundo. </li></ul></ul></ul><ul><ul><ul><li>r = tiempo de ida y vuelta. </li></ul></ul></ul>
  23. 23. Diferentes políticas de manejo de buffers
  24. 24. Posible deadlock
  25. 25. Multiplexado <ul><li>Multiplexado </li></ul><ul><ul><li>Upward multiplexing </li></ul></ul><ul><ul><ul><li>políticas de precios en las conexiones de red </li></ul></ul></ul><ul><ul><ul><li>varias conexiones de transporte sobre una de red </li></ul></ul></ul><ul><ul><li>Downward multiplexing </li></ul></ul><ul><ul><ul><li>enlaces rápidos pero la ventana limita </li></ul></ul></ul><ul><ul><ul><li>una conexión de transporte abre varias conexiones de red y reparte la carga </li></ul></ul></ul>
  26. 26. Multiplexado: Upward y downward
  27. 27. Recuperación de caídas <ul><li>Recuperación frente a problemas </li></ul><ul><ul><li>Caídas de la red </li></ul></ul><ul><ul><ul><li>con circuitos virtuales vs. datagramas </li></ul></ul></ul><ul><ul><li>Caídas en las máquinas de los extremos </li></ul></ul><ul><ul><ul><li>No se puede hacer transparente a las capas superiores </li></ul></ul></ul><ul><ul><ul><li>Existen casos donde se pueden duplicar o perder según las políticas del transmisor y el receptor </li></ul></ul></ul>
  28. 28. Caídas en las máquinas Según estrategia del servidor y el cliente <ul><ul><ul><li> A - Ack, W - Write, C - Crash </li></ul></ul></ul>
  29. 29. Transmission Control Protocol TCP <ul><li>Objetivo: Flujo confiable de bytes sobre una red no confiable </li></ul><ul><ul><li>Diferentes tecnologías de red en el medio </li></ul></ul><ul><ul><li>Robusto frente a problemas de la red </li></ul></ul><ul><li>Entidad TCP y protocolo TCP </li></ul><ul><li>Recibe flujo de la capa superior y lo parte en trozos que envía en paquetes IP </li></ul><ul><li>El receptor lo reensambla </li></ul>
  30. 30. Modelo de servicio de TCP <ul><li>Conexión entre 2 sockets </li></ul><ul><li>Identificación de los sockets formada por dirección IP + puerto (puerto=TSAP) </li></ul><ul><li>Las conexiones se identifican con las direcciones de los sockets de ambos extremos </li></ul><ul><li>Puertos 0 - 256: puertos bien conocidos (RFC 1700) </li></ul><ul><li>Full duplex y punto a punto </li></ul>
  31. 31. TCP <ul><li>Las conexiones TCP son un flujo de bytes, no de mensajes (capas superiores) </li></ul><ul><li>Puede esperar para enviarlo según su política de buffer (Pero existe push ) </li></ul><ul><li>También datos urgentes . (Ejemplo ^C) </li></ul>
  32. 32. Mensajes y bytes <ul><li>Un mensaje (ABCD) es enviado en 4 paquetes IP separados, pero devuelto a la aplicación destino como un conjunto de bytes ABCD </li></ul>
  33. 33. Protocolo TCP <ul><li>Número de secuencia de 32 bits </li></ul><ul><li>Unidad de datos = Segmento </li></ul><ul><li>Encabezado de de 20 bytes </li></ul><ul><li>Máximo del segmento </li></ul><ul><ul><li>carga del paquete IP 64 Kbytes </li></ul></ul><ul><ul><li>MTU de la red. Típico 1500 bytes </li></ul></ul><ul><li>Usa protocolo de ventanas deslizantes de tamaño de ventana variable </li></ul>
  34. 34. Problemas con los segmentos <ul><li>Pérdidas de segmentos por rutas congestionadas o enlaces caídos </li></ul><ul><li>Segmentos llegan fuera de orden </li></ul><ul><li>Segmentos se duplican por retardos que obligan a la retransmisión </li></ul>
  35. 35. Encabezado TCP
  36. 36. Pseudo-encabezado para cálculo del checksum
  37. 37. Opciones <ul><li>Escala de la ventana. </li></ul><ul><li>Repetición selectiva (nak) </li></ul>
  38. 38. Manejo de conexiones
  39. 39. <ul><li>Estados de la conexión </li></ul>
  40. 40. Significado de los estados
  41. 41. Política de transmisión en TCP <ul><li>El que recibe informa sobre el tamaño de la ventana (tamaño de buffer disponible) </li></ul><ul><li>Ventana 0 y siguiente anuncio se pierde </li></ul><ul><ul><ul><li>bloqueo </li></ul></ul></ul><ul><ul><ul><li>urgentes y prueba para reanuncio de ventana </li></ul></ul></ul><ul><li>Posibilidad de retardar el envío (hasta 500 ms) para esperar a llenar ventana del receptor </li></ul>
  42. 42. Manejo de ventana en TCP
  43. 43. Problemas de performance <ul><li>Algoritmo de Nagle </li></ul><ul><ul><ul><li>esperar el ack del primer byte y luego bufferear </li></ul></ul></ul><ul><ul><ul><li>se puede enviar también cuando se llena media ventana o el tamaño máximo del segmento </li></ul></ul></ul><ul><ul><ul><li>Malo en aplicaciones tipo X-Windows (mouse) </li></ul></ul></ul><ul><li>Síndrome de la ventana tonta </li></ul><ul><ul><ul><li>Aviso de ventana de 1 byte </li></ul></ul></ul><ul><ul><ul><li>Clark: No avisar disponibilidad de ventana hasta segmento máximo o mitad del buffer libre </li></ul></ul></ul>
  44. 44. Ventana tonta
  45. 45. Control de congestión en TCP <ul><li>Hipótesis: las pérdidas de paquetes son por congestión (los enlaces son buenos ahora) </li></ul><ul><li>Ventana de congestión </li></ul><ul><ul><ul><li>Comienza con la mitad del tamaño máximo de segmento (64Kbytes) como umbral </li></ul></ul></ul><ul><ul><ul><li>Aumenta duplicando tamaño desde un segmento a cada ACK (slow start !) </li></ul></ul></ul><ul><ul><ul><li>A partir del umbral sigue lineal </li></ul></ul></ul><ul><ul><ul><li>Pérdida o ICMP Source Quench: nivel a la mitad de la ventana y ventana 1 segmento. </li></ul></ul></ul>
  46. 46. Control de flujo y congestión
  47. 47. Ventana de congestión
  48. 48. Gestión de temporizadores <ul><li>Varios temporizadores </li></ul><ul><ul><li>el más importante es el de retransmisión </li></ul></ul><ul><li>Jacobson: </li></ul><ul><ul><li>RTT =  RTT + ( 1 -  ) M  = 7/8 </li></ul></ul><ul><ul><li>D =  D + ( 1 -  ) |RTT - M| </li></ul></ul><ul><ul><li>Timeout = RTT + 4 * D </li></ul></ul><ul><li>Karn: </li></ul><ul><ul><li>No calcular sobre retransmisiones </li></ul></ul><ul><ul><li>Se duplica el timeout a cada pérdida. </li></ul></ul><ul><li>Otros: persistencia, mantener vivo, espera al cerrar </li></ul>
  49. 49. Dispersión de retardos en capa de enlace y de transporte
  50. 50. UDP <ul><li>UDP no orientado a conexión </li></ul><ul><li>Básicamente es un paquete IP con un encabezado mínimo de capa de transporte </li></ul>

×