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