tema2v5
DESCRIPTION
Tema2v5TRANSCRIPT
Aspectos avanzados de la capa de transporte
1
Capítulo 2Aspectos avanzados de la capa de transporte
Departamento deTecnología Electrónica
Algunas de las transparencias tienen copyright:
Redes de computadoras: Un enfoque descendente
5th edition. Jim Kurose, Keith RossAddison-Wesley, Abril 2009.
Aspectos avanzados de la capa de transporte
2
Capítulo 2. Índice
2.1 Servicios de la capa de transporte
2.2 Transporte orientado a conexión: TCP
2.3 Principios del control de la congestión
2.4 Control de la congestión en TCP
2.5 Stream Control Transmission Protocol, SCTP
Aspectos avanzados de la capa de transporte
3
Capítulo 2. Índice
2.1 Servicios de la capa de transporte
2.2 Transporte orientado a conexión: TCP
2.3 Principios del control de la congestión
2.4 Control de la congestión en TCP
2.5 Stream Control Transmission Protocol, SCTP
Aspectos avanzados de la capa de transporte
4
Servicios de transporte y sus protocolos
Proporcionan comunicación lógica entre los procesos de aplicación que corren en diferentes hosts
Los protocolos de transporte tienen lugar en los extremos de la comunicación Se dividen los mensajes de la aplicación en segmentos,
que se pasan a la capa de red
RedHost A Host B
Aspectos avanzados de la capa de transporte
5
Protocolos de internet de la capa de transporte Existe más de un protocolo de transporte
disponible para las aplicaciones Internet: TCP y UDP
FTP HTTP SMTP DNS TFTP
TCP UDP
IP
Capa de enlace (LLC y MAC)
Capa física
Aplicación
Transporte
Red
Aspectos avanzados de la capa de transporte
6
Existe más de un protocolo de transporte disponible para las aplicaciones Internet: TCP y
UDP
TCP UDP
Orientado a conexión
No orientado a conexión
Fiable No fiable
Agrupación en segmentos
Mensajes sin fragmentar
Rx ordena los segmentos
Datagrama de usuario
ACKs y temporizadores
Sin ACKs
Control de flujo Sin control de flujo
Control de la congestión
Sin control de la congestión
Protocolos de internet de la capa de transporte
Aspectos avanzados de la capa de transporte
7
Puerto: identifica la aplicación Números de puerto:
http://www.iana.org/assignments/port-numbers
Protocolo de aplicación
Números de puerto Protocolo de transporte
FTP 20, 21 TCP
Telnet 23 TCP
SMTP 25 TCP
DNS 53 UDP (TCP (*))
TFTP 69 UDP
HTTP 80 TCP
POP3 110 TCP
RIP 520 UDP
Protocolos de internet de la capa de transporte
Aspectos avanzados de la capa de transporte
8
Capítulo 2. Índice
2.1 Servicios de la capa de transporte
2.2 Transporte orientado a conexión: TCP
2.3 Principios del control de la congestión
2.4 Control de la congestión en TCP
2.5 Stream Control Transmission Protocol, SCTP
Aspectos avanzados de la capa de transporte
9
TCP: Características RFCs: 793, 1122, 1323, 2018, 2581
Comunicación full duplex: Flujo de datos
bidireccional en la misma conexión
MSS: maximum segment size
Orientado a conexión: handshaking
(intercambio de mensajes de control). Protocolo de inicio de conexión
Control de flujo: El tx no desborda al rx
Punto a punto: Un emisor, un receptor
fiable, flujo de datos ordenado: Sin “límite de mensaje”
Procesamiento en cadena o pipeline: Control del flujo y la
congestión en TCP mediante ventanas
Buffers de Tx y Rx
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Aspectos avanzados de la capa de transporte
10
Estructura segmentoTCP
Puerto fuente Puerto dest
32 bits
Datos de la aplicación (longitud variable)
Nº secuencia
Nº ACKVentana
Puntero urgentechecksum
FSRPAULongcab
Sinuso
Opciones (longitud variable)
URG: datos urgentes
ACK: nºACKválido
PSH: para pasar datos a la aplicación
urgentemente RST, SYN, FIN:
Establecimiento de la conexión
(reinicio, establecimiento y
fin)
Nº bytes que el rx puede aceptar
Cuenta de los datos por bytes(no por segmentos)
checksum(como en UDP)
Aspectos avanzados de la capa de transporte
11
Nº de secuencia TCP y ACKsHost A Host B
Seq=M, SYN=1
Seq=N, ACK=M+1, SYN=1
Seq=M+1, ACK=N+1
El cliente empieza la
apertura activa
El cliente confirma la apertura del
servidor
El servidor está en apertura pasiva,
empieza conexión y confirma la apertura
del cliente
tiempoConexión
establecida
Aspectos avanzados de la capa de transporte
12
Capítulo 2. Índice
2.1 Servicios de la capa de transporte
2.2 Transporte orientado a conexión: TCP
2.3 Principios del control de la congestión
2.4 Control de la congestión en TCP
2.5 Stream Control Transmission Protocol, SCTP
Aspectos avanzados de la capa de transporte
13
Principios del control de la congestión
Congestión: informalmente: “demasiados emisores enviado
demasiados datos demasiado rápido para que la red los gestione”
diferente del control de flujo Señales de congestión:
Paquetes perdidos (desbordamiento de los buffers de los routers)
retrasos (debidos a las colas en los buffers de los routers)
Aspectos avanzados de la capa de transporte
14
Causas/costes de la congestión
Dos tx: IN = Tasa de
envío OUT = Tasa de
recepción C= capacidad del
router
Teoría de colas Grandes retrasos cuando hay congestión
Existe un máximo de tasa de transferencia
unlimited shared output link buffers
Host Ain : original data
Host B
out
Aspectos avanzados de la capa de transporte
15
Suposición: El tx retransmite los paquetes perdidos Ahora, no se tx IN, sino una tasa mayor IN’ “Costes” de la congestión:
mayor trabajo (retx) que para un caso ideal retransmisiones innecesarias: un enlace puede llevar múltiples copias de
un paquete
Causas/costes de la congestión:
unlimited shared output link buffers
Host Ain : original data
Host B
out
Aspectos avanzados de la capa de transporte
16
Causas/costes de la congestión Dos tx con el mismo destino Suposición: congestión en el router entre A y el destino Otro “coste” de la congestión:
Cuando un paquete se descarta en la ruta, la capacidad empleada en cualquier ruta atravesada anteriormente, se desperdicia
finite shared output link buffers
Host Ain : original data
Host B
out
'in : original data, plus retransmitted data
Aspectos avanzados de la capa de transporte
17
Causas/costes de la congestión Resumen de costes de la congestión
Grandes retrasos cuando la tasa de entrada a un router se acerca a la capacidad del enlace.
El tx debe retx los segmentos perdidos por el desbordamiento del router.
Se usa un BW innecesario por la retx de copias duplicadas de segmentos (por los retrasos)
La capacidad de los routers usados previamente se desperdicia cuando se descarta un paquete
Aspectos avanzados de la capa de transporte
18
Aproximaciones al control de la congestión
Control de la congestión terminal a terminal:
Sin soporte explícito a la capa de transporte
La congestión se detecta por la pérdida de paquetes o los retardos
Un ejemplo es TCP
Control de la congestión asistido por la red:
Los routers proporcionan realimentación explícita a la red Ej: un bit indica la
congestión
Dos posibles aproximaciones al control de la congestión:
Aspectos avanzados de la capa de transporte
19
Capítulo 2. Índice
2.1 Servicios de la capa de transporte
2.2 Transporte orientado a conexión: TCP
2.3 Principios del control de la congestión
2.4 Control de la congestión en TCP
2.5 Stream Control Transmission Protocol, SCTP
Aspectos avanzados de la capa de transporte
20
Control de la congestión en TCP
El emisor limita la transmisión:
ÚltimoByteEnviado-ÚltimoByteAck CongWin
¿Cómo percibe el tx la congestión? Suceso de pérdida =
timeout o 3 acks duplicados
El tx TCP reduce la velocidad (CongWin) tras el suceso de pérdida
Host A
tim
eout
Host B
time
X
resend 2nd segment
Host A
Seq=92, 8 bytes data
ACK=100
loss
tim
eout
Escenario de pérdida de
ACK
Host B
XSeq=92, 8 bytes data
ACK=
100
timeReenvío de un
segmento tras tres ACKs duplicados
Aspectos avanzados de la capa de transporte
21
Control de la congestión TCP: crecimiento aditivo, decrecimiento multiplicativo (AIMD)
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Resumen: incrementar la tasa de transmisión (tamaño de ventana), sondeando el BW hasta que ocurra una pérdida Crecimiento aditivo: se incrementa CongWin en 1 MSS
cada RTT hasta que se detecta una pérdida Decrecimiento multiplicativo: se divide CongWin por la
mitad tras una pérdida
timecong
estio
n w
indo
w s
ize
Comportamiento en diente de sierra: sondeo
de BW
Aspectos avanzados de la capa de transporte
22
Control de la congestión TCP: detalles
A grandes rasgos,
Cuando empieza la conexión, CongWin = 1 MSS Ejemplo: MSS = 500 bytes & RTT =
200 ms Velocidad inicial = 20 kbps
Tres fases: Arranque lento (slow
start, SS) Evasión de la
congestión (Congestion avoidance, CA): ej: AIMD
Recuperación rápida (Fast recovery, FR)
Las dos primeras son obligatorias en TCP, mientras que la última es recomendable
velocidad = CongWin
RTT Bytes/sec
Aspectos avanzados de la capa de transporte
23
Arranque lento TCP
El BW disponible debe ser >> MSS/RTT
Cuando comienza la conexión, la tasa crece exponentialmente hasta el primer suceso de pérdida
La velocidad inicial es lenta pero crece rápidamente de forma exponencial
Host A
one segment
RTT
Host B
time
two segments
four segments
Aspectos avanzados de la capa de transporte
24
Evasión de la congestión, CA Tras 3 ACKs duplicados:
CongWin se divide por 2 La ventana empieza a crecer
linealmente
Sin embargo, tras un fin de temporización: CongWin se pone 1 MSS; La ventana crece exponencialmente Hasta un umbral, luego crece linealmente
3 ACKs duplicados indican que la red es capaz de entregar algunos segmentos
El fin de temporización indica un escenario de congestión “más alarmante”
Filosofía:
Aspectos avanzados de la capa de transporte
25
Resumen: Control de la congestión TCP Cuando CongWin está por debajo del Umbral, el tx está en la
fase de arranque lento; la ventana crece exponencialmente.
Cuando CongWin está por encima del Umbral, el tx está en la fase de evasión de la congestión; la ventana crece linealmente.
Cuando ocurren tres ACKs duplicados, el Umbral se pone a CongWin/2 y CongWin se pone a Umbral.
Cuando ocurre un fin de temporización, Umbral se pone a CongWin/2 y CongWin se pone a 1 MSS.
Nota: La versión de TCP utilizada hace variar la forma en la que se aplica el control de la congestión. TCP Tahoe, p.e., siempre reduce la ventana de congestión al valor incial tras un evento de pérdida, mientras que en TCP Reno se aplican todas las fases de la congestión.
Aspectos avanzados de la capa de transporte
26
Capítulo 2. Índice
2.1 Servicios de la capa de transporte
2.2 Transporte orientado a conexión: TCP
2.3 Principios del control de la congestión
2.4 Control de la congestión en TCP
2.5 Stream Control Transmission Protocol, SCTP
Aspectos avanzados de la capa de transporte
27
Limitaciones deTCP y UDP Limitaciones de TCP:
TCP mantiene un orden estricto: el head-of-line blocking puede ser un problema (se bloquea el flujo de datos hasta que se recupere el segmento perdido)
TCP está orientado a byte: se debe usar PSH para asegurarse de que los datos van a la aplicación
Sin multi-homing Relativamente vulnerable a algunos ataques
(SYN flooding)
Limitaciones de UDP No fiable Sin orden de datos Sin control de congestión
Solución: SCTP
Aspectos avanzados de la capa de transporte
28
Stream Control Transport Protocol SCTP
Stream Control Transport Protocol, RFC 2960 Inicialmente creado por el grupo SIGTRAN para la RTC
Mejoras de SCTP Soporta Multi-homing: redundancia & flujo eficiente Flujo de datos múltiple en una sola asociación:
soluciona el problema del head-of-line blocking de TCP
RED IP
Host A Host BAplicación 1
Puerto SCTP = 100
-------------------------------- OS
Aplicación 2Puerto SCTP = 200
-------------------------------- OS
NI-1 NI-3NI-2 NI
IP3 = 10.1.61.11
IP2 = 160.15.82.20
IP1 = 161.10.8.221
IP = 128.33.6.12
Aspectos avanzados de la capa de transporte
29
Características de SCTP Características de SCTP
Orientado a conexión Conceptos
• Extremos (endpoints): un endpoint SCTP es una lista de direcciones en el mismo puerto
• Asociación posibilidad de múltiples IPs• {[160.15.82.20, 161.10.8.221, 10.1.61.11:100]}:
[128.33.6.12:200]} (dos endpoints, una asociación – Figura -)
RED IP
Host A Host BAplicación 1
Puerto SCTP = 100
-------------------------------- OS
Aplicación 2Puerto SCTP = 200
-------------------------------- OS
NI-1 NI-3NI-2 NI
IP3 = 10.1.61.11
IP2 = 160.15.82.20
IP1 = 161.10.8.221
IP = 128.33.6.12
Aspectos avanzados de la capa de transporte
30
Cabecera SCTP
Cabecera SCTP Las primeras palabras de 32 bits Cabecera SCTP
común (similar a la cabecera UDP) Etiqueta de verificación (verification tag): distingue
entre asociaciones; previene de ataques Chunks: bloques de datos