Title: Capa de Transporte
1Capa de Transporte
2Servicios
- 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.
3Relación entre capas
4Anidado de TPDU
5Calidad de servicio
- La capa de transporte debe mejorar la QoS de la
subred - Posibles parámetros de QoS
- Negociación de opciones
6Primitivas
- 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
7Diagrama de estadoscliente línea sólida -
servidor línea punteada
8Primitivas con Berkeley sockets
9Capas 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...
10Capas de Enlace y Transporte
- Diferencias
- Direccionamiento
- Complejidad en el establecimiento de conexión
- Capacidad de almacenamiento en la red
- Diferencias de retardos
11Direccionamiento
- 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)
12Direcciones TSAP NSAP
13Servidor de procesos
14Establecimiento 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
15Establecimiento de conexión (Tomlinson)
- Establecer conexión
- Reloj de tiempo real en cada máquina que no se
apaga - Tiempo Tmúltiplo de tiempo de vida de los
paquetes - Zona prohibida
- Conexión en tres tiempos con secuencias
independientes para cada extremo
16Números de secuenciaZona prohibida
17Establecimiento en 3 fases
18Fin 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
19Desconexión con pérdida de información
20Problema de los dos ejércitos
21Diferentes escenarios de corte
22Buffers 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.
23Diferentes políticas de manejo de buffers
24Posible deadlock
25Multiplexado
- 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
26MultiplexadoUpward y downward
27Recuperació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
28Caídas en las máquinasSegún estrategia del
servidor y el cliente
- A - Ack, W - Write, C - Crash
29Transmission 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
30Modelo de servicio de TCP
- Conexión entre 2 sockets
- Identificación de los sockets formada por
dirección IP puerto (puertoTSAP) - 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
31TCP
- 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)
32Mensajes 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
33Protocolo 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
34Problemas 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
35Encabezado TCP
36Pseudo-encabezado para cálculo del checksum
37Opciones
- Escala de la ventana.
- Repetición selectiva (nak)
38Manejo de conexiones
39 40Significado de los estados
41Polí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
42Manejo de ventana en TCP
43Problemas 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
44Ventana tonta
45Control 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.
46Control de flujo y congestión
47Ventana de congestión
48Gestión de temporizadores
- Varios temporizadores
- el más importante es el de retransmisión
- Jacobson
- RTT a RTT ( 1 - a ) M a 7/8
- D a D ( 1 - a ) 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
49Dispersión de retardosen capa de enlace y de
transporte
50UDP
- UDP no orientado a conexión
- Básicamente es un paquete IP con un encabezado
mínimo de capa de transporte