You are on page 1of 25

Captulo 3: Continuacin

3.1 Servicios de la

capa transporte
3.2 Multiplexing y
demultiplexing
3.3 Transporte sin
conexin: UDP
3.4 Principios de
transferencia
confiable de datos

3.5 Transporte orientado

a la conexin: TCP

Estructura de un segmento
Transferencia confiable de
datos
Control de flujo
Administracin de conexin

3.6 Principios del control

de congestin
3.7 Control de congestin
en TCP
Capa Transporte

3-1

Control de Congestin en TCP


Usa control extremo a

extremo (sin asistencia de la


red)
Tx limita su transmisin:
LastByteSent-LastByteAcked
min {CongWin, RcvWindow}

Aproximadamente,
tasa =

CongWin
Bytes/sec
RTT

CongWin es dinmica y funcin

de la congestin percibida de
la red

Cmo el Tx percibe la
congestin?
Prdidas = timeout 3 acks
duplicados
Tx TCP reduce tasa
(CongWin) despus de
prdidas
Hay tres mecanismos:

AIMD (Additive-Increase,
Multiplicative-Decrease)
Partida lenta
Conservativo despus de
timeout
Capa Transporte

3-2

Incremento-aditivo, decrementomultiplicativo AIMD en TCP.


Decrecimiento multiplicativo:
reducir CongWin a la
mitad luego de prdida
c o n g e s tio n
w in d o w
2 4 K b y te s

Aumento aditivo: aumenta


CongWin en 1 MSS cada
RTT en ausencia de prdida.
En algunas implementaciones
CongWin incrementa en
MSS(MSS/CongWin) por
cada ACK.

1 6 K b y te s

8 K b y te s

tim e

Conexin TCP en el tiempo


Capa Transporte

3-3

Partida lenta en TCP (slow start)


Cuando la conexin

comienza, CongWin = 1
MSS

Ejemplo: MSS = 500 bytes


& RTT = 200 msec
Tasa inicial = 20 kbps

Cuando la conexin

comienza, aumentar tasa


exponencialmente rpido
hasta primera prdida

Ancho de banda disponible

puede ser >> MSS/RTT

Es deseable aumentar
rpidamente hasta una tasa
respetable

Capa Transporte

3-4

Partida Lenta en TCP (ms)


Cuando la conexin

Duplicar CongWin cada


RTT
Es hecho incrementando
CongWin por cada ACK
recibido

RTT

comienza, aumentar tasa


exponencialmente hasta
primera prdida:

Host A

Host B
one segm
en

two segm
ents

four segm

ents

Resumen: tasa inicial es

lenta pero se acelera


exponencialmente rpido

time
Capa Transporte

3-5

Refinamiento
Filosofa:

Despus de 3 ACKs

duplicados:
CongWin baja a la mitad
Luego la ventana crece
linealmente
Pero luego de un timeout:
CongWin es fijada en 1
MSS;
La ventana crece
exponencialmente
Hasta un umbral, luego
crece linealmente

3 ACKs duplicados
indican la red es capaz
de transportar algunos
segmentos
timeout antes de 3
duplicados es ms
alarmante

Capa Transporte

3-6

Refinamiento (ms)
Q: Cundo el aumento
exponencial debera
cambiar a lineal?
A: Cuando CongWin llega
a 1/2 de su valor antes
del timeout.

Implementacin:
Umbral variable
Ante prdidas, el umbral es

fijado en 1/2 de CongWin


justo antes de la prdida

Tahoe: primera versin de control de


congestin en TCP. No distingua entre
timeout o ACK duplicados.
Reno: versin siguiente en TCP. S
distingue timeout de ACK duplicados. Es
como opera hoy TCP.
Capa Transporte

3-7

Resumen: Control de Congestin en TCP


Cuando CongWin est bajo Threshold

(umbral), Tx est en fase slow-start, la ventan


crece exponencialmente.

Cuando CongWin est sobre Threshold, Tx est

en fase abolicin de congestin, la ventana crece


linealmente.

Cuando curre un triple duplicado de ACK,

Threshold pasa a CongWin/2 y CongWin pasa a


Threshold.

Cuando ocurre un timeout, Threshold pasa a

CongWin/2 y CongWin se lleva a 1 MSS.

Capa Transporte

3-8

Control de congestin del Tx TCP


State

Event

TCP Sender Action

Commentary

Slow Start
(SS)

ACK receipt
for previously
unacked
data

CongWin = CongWin + MSS,


If (CongWin > Threshold)
set state to Congestion
Avoidance

Resulta en una duplicacin


de CongWin cada RTT

Congestion
Avoidance
(CA)

ACK receipt
for previously
unacked
data

CongWin = CongWin+MSS *
(MSS/CongWin)

Aumento aditivo, resulta en


aumento de CongWin en 1
MSS cada RTT

SS or CA

Loss event
detected by
triple
duplicate
ACK

Threshold = CongWin/2,
CongWin = Threshold,
Set state to Congestion
Avoidance

Recuperacin rpida,
implementando reduccin
multiplicativa. CongWin no
caer bajo 1 MSS.

SS or CA

Timeout

Threshold = CongWin/2,
CongWin = 1 MSS,
Set state to Slow Start

Ingresa a Partida Lenta


(slow start)

SS or CA

Duplicate
ACK

Increment duplicate ACK count


for segment being acked

CongWin y Threshold no
cambian

Capa Transporte

3-9

Throughput en TCP (tasa de


transferencia de datos lograda)
Cul es el throughout promedio de TCP como una

funcin del tamao de ventana y RTT?

Ignoremos slow start

Sea W el tamao de ventana cuando ocurre una

prdida.
Cuando la ventana es W, el throughput es W/RTT
Justo despus de prdida, la ventana cae a W/2, y
el throughput a W/2RTT.
Throughout promedio: 0.75 W/RTT
Esto debido a que el throughput crece linealmente
entre ambos valores.
Capa Transporte

3-10

Futuro de TCP
Ejemplo: segmentos de 1500 byte, RTT de 100ms,

queremos throughput de 10 Gbps


Requiere tamao de ventana W = 83,333
segmentos en trnsito
Throughput en trminos de tasa de prdida es (la
derivacin no se muestra, Ejercicio):

1.22 MSS
RTT L
L = 210-10 Wow (1 cada 5 mil millones de segmentos)
Se requieren nuevas versiones de TCP para enlaces
de alta velocidad!

Capa Transporte

3-11

Equidad en TCP
Objetivo de la Equidad (fairness): Si K sesiones TCP
comparten un mismo enlace de ancho de banda R,
cada uno debera tener una tasa promedio de R/K
TCP connection 1

TCP
connection 2

Router cuello
de botella de
capacidad R

Capa Transporte

3-12

Por qu TCP es justa?


Supongamos dos sesiones compitiendo:
Aumento aditivo da pendiente de 1, como aumento de throughout
Reduccin multiplicativa reduce throughput proporcionalmente

Throughput Conexin 2

Igual bandwidth compartido

Prdida: decrece ancho de banda en factor de 2


Abolicin de congestin: aumento aditivo
Prdida: decrece ancho de banda en factor de 2
Abolicin de congestin: aumento aditivo

Throughput Conexin 1

R
Capa Transporte

3-13

Equidad (ms)
Equidad y UDP
Aplicaciones
Multimedia no usan
TCP

No quieren tasa ahogada


por control de
congestin

En su lugar usan UDP:


Bombean audio/video a
tasa constante y toleran
prdidas de paquetes

Equidad y conexiones TCP paralelas


Nada previene a las aplicaciones
de abrir conexiones paralelas
entre dos hosts.
Navegadores WEB hacen esto
Ejemplo: Sea un enlace de tasa
R soportando 9 conexiones;

Una aplicacin nueva pide 1


conexin TCP, obtendr R/10
Si la aplicacin nueva pide 11
conexiones TCP, obtendr R/2 !

rea de investigacin:

Hacerlas amistosas con


TCP (TCP friendly)
Capa Transporte

3-14

Modelando el Retardo
Q: Cunto tiempo tarda recibir
un objeto desde un servidor
Web luego del envo del
requerimiento?
Ignorando congestin y retardo,
el retardo es influido por:

Establecimiento de conexin TCP


Retardo en la transmisin de datos
Algoritmo de partida lenta (slow
start)

Notacin y suposiciones:
Suponemos un enlace de

tasa R entre cliente y


servidor.
S: MSS (bits)
O: tamao del objeto (bits)
No retransmisiones (no
prdidas ni errores)

Tamao de ventana:

Asumir primero: ventana de

congestin fija, W
segmentos
Luego ventana dinmica,
modelando slow start

Capa Transporte

3-15

Ventana de congestin Fija (1)


cliente

objeto

servidor

Primer caso:
WS/R > RTT + S/R: ACK
del primer segmento en
ventana retorna antes
que los datos de la
ventana sean enviados
delay = 2RTT + O/R

Capa Transporte

3-16

Ventana de congestin Fija (2)


Segundo caso:
WS/R < RTT + S/R:

esperar por ACK despus


de enviar los datos de la
ventana

delay = 2RTT + O/R


+ (K-1)[S/R + RTT - WS/R]
K es el nmero de ventanas
que cubren el objeto

Capa Transporte

3-17

Modelo del Retardo en TCP: Slow Start (1)


Ahora supongamos que la ventana crece de acuerdo a
slow start
Mostraremos que el retardo para un objeto es:

Latency 2 RTT

O
S
S

P RTT ( 2 P 1)
R
R
R

Donde P es el nmero de veces que TCP est inactivo en el servidor:

P min{Q, K 1}
- Donde Q es el nmero de veces que el servidor estara inactivo
si el objeto fuera de tamao infinito.
- y K es el nmero de ventanas que cubre el objeto.

Capa Transporte

3-18

Modelo del Retardo en TCP: Slow Start (2)


Componentes del
retardo:
2 RTT por establ. de

conexin y
requerimiento
O/R para transmitir el
objeto
Tiempo inactivo del
servidor por slow start

in itia te T C P
c o n n e c tio n

re q u e s t
o b je c t

f ir s t w in d o w
= S /R
RTT

s e c o n d w in d o w
= 2 S /R

t h ir d w in d o w
= 4 S /R

Server idles:
P = min{K-1,Q} times
Ejemplo:
O/S = 15 segmentos
K = 4 ventanas
Q=2
P = min{K-1,Q} = 2
Servidor inactivo P=2
veces

fo u r th w in d o w
= 8 S /R

c o m p le te
t r a n s m is s io n

o b je c t
d e liv e r e d
tim e a t
c lie n t

tim e a t
s e rv e r

Capa Transporte

3-19

Modelo del retardo en TCP (3)


S
RTT tiempo desde que el servidor comienza a enviar segmentos
R
hasta que l recibe acuses de recibos
in it ia te T C P
c o n n e c t io n

2 k 1

S
tiempo para transmitir
R
la k - sima ventana

re q u e s t
o b je c t

f ir s t w in d o w
= S /R
RTT

S
k 1 S

RTT

2
R
R

s e c o n d w in d o w
= 2 S /R

tiempo inactivo luego de

t h ir d w in d o w
= 4 S /R

k - sima ventana
P
O
retardo 2 RTT idleTime p
R
p 1
P
O
S
S
2 RTT [ RTT 2 k 1 ]
R
R
k 1 R
o b je c t
d e liv e r e d
O
S
S
2 RTT P[ RTT ] (2 P 1)
R
R
R

fo u r th w in d o w
= 8 S /R

c o m p le t e
t r a n s m is s io n

t im e a t
c lie n t

tim e a t
s e rv e r

Capa Transporte

3-20

Modelo del retardo en TCP (4)


Recordar K = nmero de ventanas que cubren el objeto
Cmo calculamos K ?

K min{k : 2 0 S 21 S 2 k 1 S O}
min{k : 2 0 21 2 k 1 O / S }
O
min{k : 2 1 }
S
O
min{k : k log 2 ( 1)}
S
O

log 2 ( 1)
S

Clculo de Q, nmero de veces de inactividad para tamao de objeto,


es similar (ejercicio!).

RTT

Q log 2 1
1
S
/
R

Capa Transporte

3-21

Modelo de HTTP
Asumamos que una pgina WEB consiste de :

1 pgina HTML base (de tamao O bits)


M imgenes (cada una de tamao O bits)
HTTP no-persistente:
M+1 conexiones TCP en serie
Tiempo de Respuesta = (M+1)O/R + (M+1)2RTT + suma de
tiempos inactivos
HTTP Persistente:
2 RTT para requerir y recibir archivo HTML base
1 RTT para requerir e iniciar la recepcin de M imgenes
Tiempo de respuesta = (M+1)O/R + 3RTT + suma de
tiempos inactivos
HTTP No-persistente con X conexiones paralelas
Supongamos M/X entero.
1 conexin TCP para archivo base
M/X imgenes por conexin paralela.
Tiempo Respuesta = (M+1)O/R + (M/X + 1)2RTT + suma
de tiempo inactivo

Capa Transporte

3-22

Tiempo de Respuesta HTTP (in segundos)


RTT = 100 msec, O = 5 Kbytes, M=10 y X=5
20
18
16
14
12
10
8
6
4
2
0

non-persistent
persistent
parallel nonpersistent

28
100
1
10
Kbps Kbps Mbps Mbps
Para bajo ancho de banda, tiempos de conexin y respuesta son
dominados por tiempo de transmisin.
Conexiones persistentes slo dan mejora menor sobre conexiones
paralelas.
Capa Transporte

3-23

Tiempo de Respuesta HTTP (in segundos)


RTT =1 sec, O = 5 Kbytes, M=10 y X=5
70
60
50

non-persistent

40

persistent

30
20

parallel nonpersistent

10
0

28
Kbps

100
1
10
Kbps Mbps Mbps

Para RTT grandes, tiempo de respuesta es dominado por establecimiento de TCP


y retardos de slow start. Conexiones persistentes ahora hacen una mejora
importante: particularmente en redes de alto producto retardo*bandwidth.
Capa Transporte

3-24

Captulo 3: Resumen
Principios detrs de los servicios

de capa transporte:
multiplexing, demultiplexing
Transferencia confiable de
datos
Control de flujo
Control de congestin
Uso e implementacin en Internet
UDP
TCP

A continuacin
Dejaremos la
periferia de la red
(capas aplicacin y
transporte)
Nos internaremos en el
centro de la red
network core
Capa Transporte

3-25

You might also like