La capa de Transporte
Cap. 6
Servicio de Transporte
• Servicios a las capas superiores
• Primitivas de servicio de transporte
• Sockets de Berkeley
Servicios brindados a las capas superiores
Las capas de red, transporte y aplicación
Primitivas de servicio de transporte (1)
Primitivas de un servicio de transporte simple
Primitivas de servicio de transporte (2)
Anidamiento de TPDUs, paquetes y tramas.
Berkeley Sockets (1)
Diagrama de estados para la gestión de conexiones.
Transiciones etiquetadas en itálicas son causadas por paquetes recibidos.
Líneas sólodas muestran la secuencia de estados del cliente.
Líneas punteadas muestran la secuencia de estados del servidor.
Berkeley Sockets (2)
Primitivas para TCP
Ejemplo de programación de sockets:
Un servidor de archivos en Internet (1)
... Código del cliente
Ejemplo de programación de sockets:
Un servidor de archivos en Internet (2)
...
...
Código del cliente
Ejemplo de programación de sockets:
Un servidor de archivos en Internet (3)
...
Código del cliente
Ejemplo de programación de sockets:
Un servidor de archivos en Internet (4)
...
Código del Servidor
Ejemplo de programación de sockets:
Un servidor de archivos en Internet (5)
...
...
Código del servidor
Ejemplo de programación de sockets:
Un servidor de archivos en Internet (6)
...
Código del servidor
Elementos de los protocolos de transporte
• Direccionamiento
• Establecimiento de la conexión
• Liberación de la conexión
• Control de errores y control de flujo
• Multiplexión
• Recuperación de desastres
Direccionamiento
TSAPs, NSAPs y conexiones de transporte
Establecimiento de una conexión
Protocolo de saludo de tres vías.
(CR: CONNECTION REQUEST). Operación normal.
Establecimiento de una conexión
Condiciones erróneas:
Duplicado viejo de CR apareciendo de alguna parte (izq.)
CR viejo duplicado y ACK viejo duplicado (der.)
Liberación de conexión
Desconexión abrupta con pérdida de datos
Liberación de conexión
Liberación normal de tres vías ACK final perdido
Liberación de conexión
Respuesta perdida Respuesta perdida y pérdida
de los DR subsecuentes
Multiplexión
(a) Multiplexión. (b) Multiplexión inversa.
Recuperación de fallas
Diferentes combinaciones de estrategias cliente y servidor
Control de congestión
• Asignación de ancho de banda deseado
• Regulación de la tasa de transmisión
Asignación de ancho de banda (1)
Asignación de ancho de banda (2)
Asignación de ancho de banda (3)
Regulación del envío de datos (1)
Regulación del envío de datos (2)
Algunos protocolos de control de congestión
Regulación del envío de datos (3)
Ley de control de incremento aditivo/decremento multiplicativo (AIMD)
En conexiones rápidas, un 1% es una tasa de pérdidas
moderada, pero con un 10% el enlace deja de funcionar.
En conexiones inalámbricas suele haber más de 10% de
pérdidas, pero lo resuelve la capa de enlace de manera
transparente para la capa de transporte.
Protocolos de Transporte de Internet: UDP
• Introducción a UDP
• Remote Procedure Call (RPC)
• Real-Time Transport (RTP)
UDP (1)
Encabezado UDP
UDP (2)
Pseudoheader IPv4 incluído en el checksum de UDP
Remote Procedure Call
Pasos en un llamado a procedimiento remoto.
Real-Time Transport (1)
(a) Posición de RTP en la pila de protocolos.
(b) Anidamiento de paquetes.
Real-Time Transport (2)
Encabezado RTP
Real-Time Transport (3)
Uso de buffer para uniformar el flujo de salida
Real-Time Transport (4)
jitter alto jitter bajo
Protocolos de Transporte de Internet: TCP (1)
• Introducción a TCP
• Modelo de servicio de TCP
• Protocolo TCP
• Encabezado de segmento TCP
• Establecimiento de conexión TCP
• Liberación de conexión TCP
Protocolos de Transporte de Internet: TCP (2)
• Manejo de conexiones en TCP
• Ventana deslizante de TCP
• Gestión de temporizadores en TCP
• Control de congestión en TCP
• TCP a futuro
Modelo de servicios de TCP (1)
Algunos puertos asignados
Modelo de servicios de TCP (2)
(a) Cuatro segmentos de 512 bytes enviados como datagramas IP separados
(b) 2048 bytes de datos entregados a la aplicación mediante un único READ
Encabezado de un segmento TCP
Establecimiento de una conexión TCP
a) Establecimiento de conexión TCP en el caso normal
b) Establecimiento simultáneo de conexión desde ambos extremos
Manejo de las conexiones TCP (1)
Estados usados por la máquina de estados finitos
que maneja las conexiones TCP
Manejo de las conexiones TCP (2)
Máquina de estados finitos
que maneja las conexiones
TCP.
Líneas sólidas: camino normal
para un cliente.
Líneas a trazos: camino
normal para un servidor.
Líneas suaves: eventos
inususales.
Cada transición está
etiquetada por el evento que
la origina y la acción que
produce.
Ventana deslizante TCP (1)
Gestión de la ventana en TCP
Ventana deslizante TCP (2)
Síndrome de la ventana tonta
Manejo de temporizadores en TCP
(a) Densidad de probabilidad del tiempo de arribo de un acknowledgment
en la capa de enlace de datos. (b) Lo mismo para TCP
Control de congestión en TCP (1)
Inicio lento desde una ventana de congestión inicial de un segmento
Control de congestión en TCP (2)
Incremento aditivo de una ventana de congestión inicial de un segmento
Control de congestión en TCP (3)
Inicio lento seguido de un incremento aditivo en el TCP Tahoe
Control de congestión en TCP (4)
La recuperación rápida y el patrón de diente de sierra de TCP Reno