Beruflich Dokumente
Kultur Dokumente
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