Capa de Transporte
1
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.
2
Relación entre capas
3
Anidado de TPDU
4
Calidad de servicio
• La capa de
transporte debe
mejorar la QoS de
la subred
• Posibles
parámetros de QoS
• Negociación de
opciones
5
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:
6
Diagrama de estados
cliente: línea sólida - servidor: línea punteada
7
Primitivas con Berkeley sockets
8
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...
9
Capas de Enlace y Transporte
Diferencias:
• Direccionamiento
•Complejidad en el establecimiento de conexión
• Capacidad de almacenamiento en la red
• Diferencias de retardos
10
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)
11
Direcciones: TSAP NSAP
12
Servidor de procesos
13
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
14
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
15
Números de secuencia
Zona prohibida
16
Establecimiento en 3 fases
17
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
18
Desconexión con pérdida de información
19
Problema de los dos ejércitos
20
Diferentes escenarios de corte
21
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.
22
Diferentes políticas de manejo de buffers
23
Posible deadlock
24
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
25
Multiplexado:
Upward y downward
26
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
27
Caídas en las máquinas
Según estrategia del servidor y el cliente
A - Ack, W - Write, C - Crash
28
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
29
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
30
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)
31
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
32
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
33
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
34
Encabezado TCP
35
Pseudo-encabezado para cálculo
del checksum
36
Opciones
• Escala de la ventana.
• Repetición selectiva (nak)
37
Manejo de conexiones
38
• Estados de
la conexión
39
Significado de los estados
40
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
41
Manejo de ventana en TCP
42
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
43
Ventana tonta
44
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.
45
Control de flujo y congestión
46
Ventana de congestión
47
Gestión de temporizadores
• Varios temporizadores
– el más importante es el de retransmisión
• Jacobson:
– RTT = a RTT + ( 1 - a ) M
– D = a D + ( 1 - a ) |RTT - M|
– Timeout = RTT + 4 * D
a = 7/8
• Karn:
– No calcular sobre retransmisiones
– Se duplica el timeout a cada pérdida.
• Otros: persistencia, mantener vivo, espera al cerrar
48
Dispersión de retardos
en capa de enlace y de transporte
49
UDP
• UDP no orientado a conexión
• Básicamente es un paquete IP con un encabezado
mínimo de capa de transporte
50
Descargar

Capa de Transporte