500 likes | 728 Views
Capa de Transporte. 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
E N D
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.
Calidad de servicio • La capa de transporte debe mejorar la QoS de la subred • Posibles parámetros de QoS • Negociación de opciones
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:
Diagrama de estadoscliente: línea sólida - servidor: línea punteada
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...
Capas de Enlace y Transporte • 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)
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
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
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
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.
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
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
Caídas en las máquinasSegún estrategia del servidor y el cliente A - Ack, W - Write, C - Crash
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
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
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)
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
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
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
Opciones • Escala de la ventana. • Repetición selectiva (nak)
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
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
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.
Gestió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
UDP • UDP no orientado a conexión • Básicamente es un paquete IP con un encabezado mínimo de capa de transporte