Está en la página 1de 50

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 =  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 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

También podría gustarte