Control de Congestion en TCP

Anuncio
TCP Control de Congestión
Teorı́a de la Comunicaciones
05 de Junio de 2012
Request for comments
Internet Engineering Task Force
Standards de Internet
(ejemplo: rfc 1122 - Requirements for Internet Hosts )
Keywords: MUST, MUST NOT, SHOULD,
SHOULD NOT, MAY
(rfc 2119 - Key words for use in RFCs to Indicate Requirement
Levels)
rfc5681 - Teorı́a de la Comunicaciones
rfc 5681: TCP Congestion Control
Abstract
This document defines TCP’s four intertwined
congestion control algorithms: slow start, congestion
avoidance, fast retransmit, and fast recovery. In
addition, the document specifies how TCP should
begin transmission after a relatively long idle period,
as well as discussing various acknowledgment
generation methods. This document obsoletes RFC
2581.
rfc5681 - Teorı́a de la Comunicaciones
Definiciones
Segment: ”Paquete”TCP/IP
Sender Maximum Segment Size (SMSS):
Máximo payload puede tener cada segmento
Receiver Maximum Segment Size (RMSS):
Máximo que va a recibir el receptor
Full-Sized Segment: Un segmento con la
cantidad máxima (SMSS) de bytes
rfc5681 - Teorı́a de la Comunicaciones
Definiciones
Reciever Window (RWND): Última Advertised
Window recibida
Congestion Window (CWND): Estimación de
la congestión
Initial Window (IW): Valor de CWND después
del handshake
Loss Window (LW): Valor de CWND después
de un timeout
Restart Window (RW): Valor de CWND
después de un perı́odo idle.
rfc5681 - Teorı́a de la Comunicaciones
Definiciones
Flight Size: (LastByte Sent - LastByte ACKed)
Duplicate Acknowledgement: Un ACK es
duplicado, si:
El receptor tiene datos en vuelo.
El ACK no tiene datos.
No Hay SYN ni FIN.
El número de ACK es igual al último recibido.
La advertised window es igual a la última recibida.
rfc5681 - Teorı́a de la Comunicaciones
Algoritmos
Additive Increase / Multiplicative Decrease
rfc5681 - Teorı́a de la Comunicaciones
Algoritmos de Control de Congestión
Slow Start: Comenzar enviando pocos datos
Congestion Avoidance: Aumentar un SMSS por
RTT
Fast Retransmit / Fast Recovery: No esperar al
time out, para recuperarse de un error.
rfc5681 - Teorı́a de la Comunicaciones
Algoritmos: Slow Start
Inicialmente:
CWND = IW = 2*SMSS
SSTHRESH = alta
Por cada ACK,
si CWND < SSTHRESH, hacer:
CWND += min(N,SMSS)
N es la cantidad de bytes
reconocidos por el ACK
rfc5681 - Teorı́a de la Comunicaciones
Ejercicio 17
Considere el efecto de usar Slow Start en una
conexión TCP, que tiene un RTT de 10 mseg y sin
congestión ni errores presentes en la red. La RWND
es de 24 KB y el SMSS es de 2KB. Cuánto tiempo
transcurre antes de que pueda ser enviada la
primera ventana de recepción llena?
Asuma los siguientes valores:
initial window = 2 * SMSS
SSTHRESH = muy alto
rfc5681 - Teorı́a de la Comunicaciones
Algoritmos: Congestion Avoidance
Si CWND > SSTHRESH, por
cada ACK, hacer:
CWND += SMSS*SMSS/CWND
rfc5681 - Teorı́a de la Comunicaciones
Algoritmos: Slow Start + Congestion Avoidance
rfc5681 - Teorı́a de la Comunicaciones
Algoritmos: Time out
Ante un time-out se cambian los valores a:
CWND = LW (1 SMSS)
SSTHRESH = max(FlightSize/2, 2 ∗ SMSS)
⇒ Se comienza de nuevo con Slow Start
rfc5681 - Teorı́a de la Comunicaciones
Algoritmos: Fast Recovery / Fast Retransmit
En cuanto el receiver reciba un segmento fuera
de orden, deberı́a enviar un ACK Duplicado
inmediatamente.
En cuanto el sender reciba el 3er ACK
duplicado, deberı́a retransmitir inmediatamente
el segmento perdido.
SSTHRESH = max(FlightSize/2, 2 ∗ SMSS)
CWND = SSTHRESH + 3
Mientras sigan llegando ACKs duplicados:
CWND += SMSS (Congestion Avoidance)
rfc5681 - Teorı́a de la Comunicaciones
Algoritmos: Fast Recovery / Fast Retransmit
Termina cuando llega el
primer ACK que reconoce
nuevos datos.
CWND = SSTHRESH
⇒ Congestion Avoidance
rfc5681 - Teorı́a de la Comunicaciones
Algoritmos: Fast Recovery / Fast Retransmit
Sin FR/FR
Con FR/FR
rfc5681 - Teorı́a de la Comunicaciones
Ejercicio 19
Dado el siguiente intercambio de mensajes TCP entre dos hosts
1
2
3
4
5
6
7
8
9
10
11
ORIG
192.168.1.100:5678
192.168.1.1:80
192.168.1.100:5678
192.168.1.100:5678
192.168.1.1:80
192.168.1.100:5678
192.168.1.1:80
192.168.1.100:5678
192.168.1.1:80
192.168.1.100:5678
192.168.1.1:80
DEST
192.168.1.1:80
192.168.1.100:5678
192.168.1.1:80
192.168.1.1:80
192.168.1.100:5678
192.168.1.1:80
192.168.1.100:5678
192.168.1.1:80
192.168.1.100:5678
192.168.1.1:80
192.168.1.100:5678
FLAGS
S
SA
A
A
A
A
A
A
A
A
R
SEQ
0
56589
1 56590
1 56590
56590
53
56791
54
57192
54
57323
ACK
−
1
0
53
54
56791 0
54
57192
54
57323
−
LENGTH
0
0
200
400
0
130
0
0
a) Cuánto vale la ventana de congestión del lado del receptor luego del
segmento 10? Asuma que el ssthresh asi como la advertise window
que el emisor informa son muy altos.
b) En que estado se encuentra la conexión luego del último segmento?
c) Si el RTT entre ambos hosts es de alrededor 0.330 milisegundos.
Cuánto vale el RTO luego del segmento 10?
rfc5681 - Teorı́a de la Comunicaciones
Descargar