Você está na página 1de 35

3: Camada de Transporte 3c-1

Contedo do Captulo 3
3.1 Servios da camada
de transporte
3.2 Multiplexao e
demultiplexao
3.3 UDP: Transporte
no orientado a
conexo
3.4 Princpios da
transferncia
confivel de dados
3.5 Transporte
orientado a conexo:
TCP
transferncia confivel
controle de fluxo
gerenciamento de
conexes
3.6 Princpios de
controle de
congestionamento
3.7 Controle de
congestionamento do
TCP

3: Camada de Transporte 3c-2
Princpios de Controle de
Congestionamento
Congestionamento:
informalmente: muitas fontes enviando muitos
dados muito rapidamente para a rede poder
tratar
diferente de controle de fluxo!
manifestaes:
perda de pacotes (esgotamento de buffers em
roteadores)
longos atrasos (enfileiramento nos buffers dos
roteadores)
um dos 10 problemas mais importantes em redes!

3: Camada de Transporte 3c-3
Causas/custos de congestionamento:
cenrio 1
dois remetentes,
dois receptores
um roteador,
buffers infinitos
sem
retransmisso

grandes
retardos qdo.
congestionada
vazo mxima
alcanvel
unlimited shared
output link buffers
Host A

in
: original data
Host B

out

3: Camada de Transporte 3c-4
Causas/custos de congestionamento:
cenrio 2
Um roteador, buffers finitos
retransmisso pelo remetente de pacote
perdido

finite shared output
link buffers
Host A

in
: original
data
Host B

out

'
in
: original data, plus
retransmitted data
3: Camada de Transporte 3c-5
sempre: (goodput)
retransmisso perfeita apenas com perdas:
retransmisso de pacotes atrasados (no perdidos) torna
maior (do que o caso perfeito) para o mesmo

Causas/custos de congestionamento:
cenrio 2

in

out
=

in

out
>

in

out
R/2
R/2

in

o
u
t

b.
R/2
R/2

in

o
u
t

a.
R/2
R/2

in

o
u
t

c.
R/4
R/3
custos de congestionamento:
mais trabalho (retransmisso) para dado goodput
retransmisses desnecessrias: enviadas mltiplas cpias do pacote

3: Camada de Transporte 3c-6
Causas/custos de congestionamento:
cenrio 3
quatro remetentes
caminhos com mltiplos enlaces
temporizao/retransmisso


in
P: o que acontece
medida que e
crescem ?

in
finite shared output
link buffers
Host A

in
: original data
Host B

out

'
in
: original data, plus
retransmitted data
3: Camada de Transporte 3c-7
Causas/custos de congestionamento:
cenrio 3
Outro custo de congestionamento:
quando pacote descartado, qq. capacidade de
transmisso j usada (antes do descarte) para esse
pacote foi desperdiada!
H
o
s
t
A
H
o
s
t
B

o
u
t

3: Camada de Transporte 3c-8
Abordagens de controle de congestionamento
Controle de
congestionamento
fim a fim :
no tem realimentao
explcita pela rede
congestionamento inferido
a partir das perdas,
retardo observados pelo
sistema terminal
abordagem usada pelo TCP
Controle de
congestionamento
com apoio da rede:
roteadores realimentam os
sistemas terminais
bit indicando
congestionamento
(SNA, DECbit, TCP/IP
ECN, ATM)
taxa explcita p/ envio
pelo remetente
Duas abordagens amplas para controle de
congestionamento:
3: Camada de Transporte 3c-9
Estudo de caso: controle de
congestionamento no ABR da ATM
ABR (available bit rate):
servio elstico
se caminho do remetente
subcarregado:
remetente deveria
usar banda disponvel
se caminho do remetente
congestionado:
remetente reduzido
taxa mnima garantida
clulas RM (resource
management):
enviadas pelo remetente,
intercaladas com clulas de dados
bits na clula RM iniciados por
comutadores (apoio da rede)
bit NI: no aumente a taxa
(congestionamento moderado)
bit CI: indicao de
congestionamento
clulas RM devolvidas ao
remetente pelo receptor, sem
alterao dos bits
3: Camada de Transporte 3c-10
Estudo de caso: controle de
congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na clula RM
comutador congestionado pode diminuir valor ER na clula
taxa do remetente assim ajustada p/ menor valor possvel entre os
comutadores do caminho
bit EFCI em clulas de dados ligado por comutador congestionado
se EFCI ligado na clula de dados antes da clula RM, receptor liga bit
CI na clula RM devolvida
3: Camada de Transporte 3c-11
Contedo do Captulo 3
3.1 Servios da camada
de transporte
3.2 Multiplexao e
demultiplexao
3.3 UDP: Transporte
no orientado a
conexo
3.4 Princpios da
transferncia
confivel de dados
3.5 Transporte
orientado a conexo:
TCP
transferncia confivel
controle de fluxo
gerenciamento de
conexes
3.6 Princpios de
controle de
congestionamento
3.7 Controle de
congestionamento do
TCP

3: Camada de Transporte 3c-12
Controle de Congestionamento do
TCP
controle fim-a-fim (sem
assistncia da rede)
transmissor limita a
transmisso:
LastByteSent-LastByteAcked
s CongWin
Praticamente,


CongWin dinmica, em funo
do congestionamento percebido
da rede

Como o transmissor percebe o
congestionamento?
evento de perda = estouro
do temporizador ou 3 acks
duplicados
transmissor TCP reduz a
taxa (CongWin) aps
evento de perda
trs mecanismos:
AIMD
partida lenta
conservador aps eventos
de estouro de
temporizao
taxa =
CongWin
RTT
Bytes/seg
3: Camada de Transporte 3c-13
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion
window
decrescimento
multiplicativo: corta
CongWin pela metade
aps evento de perda
crescimento aditivo:
incrementa CongWin
de 1 MSS a cada RTT
na ausncia de eventos
de perda: sondagem
Conexo TCP de longa durao
3: Camada de Transporte 3c-14
Partida Lenta do TCP
No incio da conexo,
CongWin = 1 MSS
Exemplo: MSS = 500
bytes & RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda
disponvel pode ser >>
MSS/RTT
desejvel um
crescimento rpido at
uma taxa considervel
No incio da conexo,
aumenta a taxa
exponencialmente at o
primeiro evento de
perda


3: Camada de Transporte 3c-15
No incio da conexo,
aumenta a taxa
exponencialmente at
o primeiro evento de
perda:
duplica CongWin a cada
RTT
atravs do incremento
da CongWin para cada
ACK recebido
Resumo: taxa inicial
baixa mas cresce
rapidamente de forma
exponencial
TCP: Partida lenta (mais)
Estao A
R
T
T

Estao B
tempo
3: Camada de Transporte 3c-16
Refinamento
Aps 3 ACKs duplicados:
corta CongWin pela
metade
a janela depois cresce
linearmente
Mas aps estouro de
temporizador:
CongWin reduzida a 1
MSS;
janela cresce
exponencialmente
at um limiar, depois
cresce linearmente

3 ACKs duplicados
indica que a rede capaz
de entregar alguns
segmentos
estouro de
temporizador antes de 3
ACKs duplicados mais
alarmante.

Filosofia:
3: Camada de Transporte 3c-17
Refinamento (mais)
P: Quando o crescimento
exponencial deve
mudar para linear?
R: Quando CongWin
atinge 1/2 do seu valor
antes do estouro do
temporizador.


Implementao:
Limiar (Threshold) varivel
Com uma perda o limiar
passa a ser 1/2 da CongWin
imediatamente anterior
perda.
3: Camada de Transporte 3c-18
Resumo: Controle de Congestionamento
do TCP
Quando a CongWin est abaixo do limiar,
transmissor est na fase de incio lento, janela
cresce exponencialmente.
Quando a CongWin est acima do limiar,
transmissor est na fase de evitar
congestionamento, janela cresce linearmente.
Quando chegam ACKs triplicados, Limiar passa a
ser CongWin/2 e CongWin passa ao valor do
Limiar.
Quando estoura o temporizador, Limiar passa a
ser CongWin/2 e CongWin passa a ser 1 MSS.
3: Camada de Transporte 3c-19
Controle de congestionamento do
transmissor TCP
Evento Estado Ao do Transmissor TCP Comentrio
ACK
recebido
para dados
ainda no
reconhecidos
Partida
lenta
CongWin = CongWin + MSS,
If (CongWin > Limiar)
seta estado para Evitar
congestionamento
Resulta na duplicao da
CongWin a cada RTT
ACK
recebido
para dados
ainda no
reconhecidos
Evitar
congestion
amento
CongWin = CongWin+MSS *
(MSS/CongWin)

Incremento aditivo,
resultando no incremento
da CongWin de 1 MSS a
cada RTT
Perda
detectada
por ACKs
triplicados
qualquer Limiar = CongWin/2,
CongWin = Limiar,
Seta estado para Evitar
Congestionamento
Recuperao rpida,
implementa decrescimento
multiplicativo. CongWin no
cai abaixo de 1 MSS.
Estouro de
temporizador
qualquer Limiar = CongWin/2,
CongWin = 1 MSS,
Seta estado para Partida lenta
Entra estado de partida
lenta
ACK
duplicado
qualquer Incrementa contador de ACKs
duplicados para o segmento
que est sendo reconhecido
CongWin e Threshold no
se alteram
3: Camada de Transporte 3c-20
Vazo (throughput) do TCP
Qual a vazo mdia do TCP em funo do
tamanho da janela e do RTT?
Ignore a partida lenta
Seja W o tamanho da janela quando ocorre
a perda
Quando a janela W a vazo W/RTT
Imediatamente aps a perda, janela cai a
W/2, vazo cai para W/2RTT.
Vazo mdia = 0,75 W/RTT
3: Camada de Transporte 3c-21
Futuro do TCP
Exemplo: segmentos de 1500 bytes, RTT de
100ms, deseja vazo de 10 Gbps
Requer janela de W = 83.333 segmentos em
trnsito
Vazo em termos de taxa de perdas:



L = 210
-10
Taxa de perdas demasiado baixa!!!
So necessrias novas verses do TCP para altas
velocidades!


L RTT
MSS 22 , 1
3: Camada de Transporte 3c-22
Equidade (Fairness) do TCP
Meta de equidade: se K sesses TCP
compartilham o mesmo enlace de gargalo
com largura de banda R, cada uma deve
obter uma taxa mdia de R/K
TCP conexo 1
Roteador
gargalo
capacidade R
TCP
conexo 2
3: Camada de Transporte 3c-23
Por qu TCP justo?
Duas sesses concorrentes:
Aumento aditivo d gradiente de 1, enquanto vazo aumenta
decremento multiplicativo diminui vazo proporcionalmente
R
R
compartilhamento igual da banda
Vazo da conexo 1
evitar congestionamento: aumento aditivo
perda: diminui janela por fator de 2
evitar congestionamento: aumento aditivo
perda: diminui janela por fator de 2
3: Camada de Transporte 3c-24
Justeza (mais)
Justeza e UDP
Apls. multimdia
freqentemente no usam
TCP
no desperdiam taxa
regulada pelo controle de
congestionamento
Preferem usar o UDP:
Injeta udio/vdeo a uma
taxa constante, tolera
perda de pacotes
rea de Pesquisa: amigvel
ao TCP (TCP friendly)

Justeza e conexes TCP em
paralelo
nada impede que as apls. abram
conexes paralelas entre 2
hosts
Os browsers Web fazem isto
Exemplo: canal com taxa R
compartilhado por 9 conexes;
nova apl pede 1 TCP, recebe
taxa R/10
nova apl pede 11 TCPs, recebe
taxa R/2 !

3: Camada de Transporte 3c-25
TCP: modelagem de latncia
P: Quanto tempo leva para
receber um objeto de um
servidor WWW depois de
enviar o pedido?
Estabelecimento de conexo
TCP
retardo de transferncia de
dados
Notao, suposies:
Supomos um enlace entre cliente e
servidor de taxa R
Supomos: janela de
congestionamento fixo, W
segmentos
S: MSS (bits)
O: tamanho do objeto (bits)
sem retransmisses (sem perdas,
sem erros)


Dois casos a considerar:
WS/R > RTT + S/R: ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela
WS/R < RTT + S/R: aguarda ACK depois de enviar todos
os dados na janela
3: Camada de Transporte 3c-26
Janela de congestionamento fixa
(1)
Primeiro caso:
WS/R > RTT + S/R: ACK para
o primeiro segmento na
janela retorna antes da
transmisso de uma janela
completa de dados
latncia = 2RTT + O/R
3: Camada de Transporte 3c-27
Janela de congestionamento fixa
(2)
Segundo caso:
WS/R < RTT + S/R:
espera por ACK aps
transmitir uma janela
completa de dados
latncia = 2RTT + O/R
+ (K-1)[S/R + RTT - WS/R]
3: Camada de Transporte 3c-28
TCP: modelagem de latncia: partida lenta
Agora supomos que a janela cresce la partida lenta.
Mostramos que a latncia de um objeto de tamanho O :
R
S
R
S
RTT P
R
O
RTT Latncia
P
) 1 2 ( 2
(

+ + + =
onde P o nmero de vezes que o TCP para no servidor:
} 1 , { min = K Q P
- onde Q o nmero de vezes que o servidor pararia
se o objeto fosse de tamanho infinito.

- e K o nmero de janelas que cobrem o objeto.
3: Camada de Transporte 3c-29
TCP: modelagem de latncia: partida lenta (cont.)
RTT
initiate TCP
connection
request
object
first window
= S/R
second window
= 2S/R
third window
= 4S/R
fourth window
= 8S/R
complete
transmission
object
delivered
time at
client
time at
server
Exemplo:
O/S = 15 segmentos
K = 4 janelas
Q = 2
P = min{K-1,Q} = 2

Servidor ocioso P=2 unidades
de tempo
Componentes da
latncia:
2 RTTs para estab
conexo e pedido
O/R para transmitir o
objeto
tempo ocioso do servidor
devido partida lenta

Servidor ocioso:
P = min{K-1,Q} unidades de
tempo
3: Camada de Transporte 3c-30
TCP: modelagem de latncia: partida lenta (cont.)
R
S
R
S
RTT P RTT
R
O
R
S
RTT
R
S
RTT
R
O
o Tempoparad RTT
R
O
P
P
k
k
P
p
p
) 1 2 ( 2
2 2
2 latncia
1
1
1

(

+ + + =
(

+ + + =
+ + =

=
janela sima a aps parado tempo
2
1

=
(

+
+

k
R
S
RTT
R
S
k
entos reconhecim os receba servidor o que at
segmentos enviar a comea servidor o que desde tempo = + RTT
R
S
janela sima - k a r transmiti para tempo 2
1
=

R
S
k
RTT
initiate TCP
connection
request
object
first window
= S/R
second window
= 2S/R
third window
= 4S/R
fourth window
= 8S/R
complete
transmission
object
delivered
time at
client
time at
server
3: Camada de Transporte 3c-31
Modelagem de Latncia do TCP (4)
(
(
(

+ =
+ > =
> =
> + + + =
> + + + =

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

Clculo de Q, nmero de intervalos ociosos para um objeto de


tamanho infinito semelhante (veja exerccio).
Lembre que K = nmero de janelas que cobrem objeto
Como podemos calcular K ?
3: Camada de Transporte 3c-32
Modelagem do HTTP
Assuma que a pgina Web composta por:
1 pgina base HTML (de tamanho O bits)
M imagens (cada uma de tamanho O bits)
HTTP no-persistente :
M+1 connexes TCP em srie
Tempo de resposta = (M+1)O/R + (M+1)2RTT + soma dos
tempos ociosos
HTTP persistente :
2 RTT para pedir e receber arquivo HTML
1 RTT para pedir e receber M imagens
Tempo de resposta = (M+1)O/R + 3RTT + soma dos
tempos ociosos
HTTP no-persistente com X conexes paralelas
Suponha que M/X seja um inteiro.
1 conexo TCP para arquivo base
Conjuntos de M/X conexes paralelas para as imagens.
Tempo de resposta = (M+1)O/R + (M/X + 1)2RTT + soma
dos tempos ociosos
3: Camada de Transporte 3c-33
0
2
4
6
8
10
12
14
16
18
20
28
Kbps
100
Kbps
1
Mbps
10
Mbps
non-persistent
persistent
parallel non-
persistent
Tempo de resposta do HTTP
RTT = 100 mseg, O = 5 Kbytes, M=10 and X=5
Para largura de banda baixa os tempos de conexo e de resposta so
dominados pelo tempo de transmisso.

Conexes persistentes resultam num melhoramento pequeno em relao
s conexes paralelas.

em segundos
3: Camada de Transporte 3c-34
0
10
20
30
40
50
60
70
28
Kbps
100
Kbps
1
Mbps
10
Mbps
non-persistent
persistent
parallel non-
persistent
RTT =1 sec, O = 5 Kbytes, M=10 e X=5
Para grandes RTTs, o tempo de resposta dominado pelos atrasos de
estabelecimento de conexes e de partida lenta.
Conexes persistentes apresentam um melhor desempenho: particularmente
em redes com valor alto do produto atraso * largura de banda.

Tempo de resposta do HTTP
em segundos
3: Camada de Transporte 3c-35
Captulo 3: Resumo
Princpios atrs dos
servios da camada de
transporte:
multiplexao/
demultiplexao
transferncia confivel de
dados
controle de fluxo
controle de congestionamento
instanciao e implementao na
Internet
UDP
TCP
Prximo captulo:
samos da borda da
rede (camadas de
aplicao e transporte)
entramos no ncleoda
rede