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 estadoscliente: 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
10
Diferencias:
• Direccionamiento
•Complejidad en el establecimiento de conexión
• Capacidad de almacenamiento en la red
• Diferencias de retardos
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 secuenciaZona 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áquinasSegú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 = 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
48
Dispersión de retardosen 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