Download - Conteúdo do Capítulo 3
3 Camada de Transporte 3b-1
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-2
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
transmissatildeo full duplex fluxo de dados bi-
direcional na mesma conexatildeo
MSS tamanho maacuteximo de segmento
orientado a conexatildeo handshaking (troca de
msgs de controle) inicia estado de remetente receptor antes de trocar dados
fluxo controlado receptor natildeo seraacute afogado
ponto a ponto 1 remetente 1 receptor
fluxo de bytes ordenados confiaacutevel natildeo estruturado em msgs
com paralelismo (pipelined) tam da janela ajustado por
controle de fluxo e congestionamento do TCP
buffers de envio e recepccedilatildeo
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
3 Camada de Transporte 3b-3
TCP estrutura do segmento
no porta origemno porta dest
32 bits
dados daaplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncianuacutemero de
reconhecimentojanela receptor
ptr dados urgchecksum
FSRPAUtamcab
semuso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACKvaacutelido
PSH envia dados jaacute(pouco usado)
RST SYN FINgestatildeo de conexatildeo
(comandos deestabelecimento
liberaccedilatildeo)
no bytes rcpt queraceitar
contagem de dadospor bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3b-4
TCP nos de seq e ACKsNos de seq
ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKs no de seq do proacutex
byte esperado do outro lado
ACK cumulativoP como receptor trata
segmentos fora da ordem R espec do TCP
omissa - deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsuaacuterioteclalsquoCrsquo
A reconhecechegada
do lsquoCrsquoecoado
B reconhecechegada de
lsquoCrsquo ecoalsquoCrsquo de volta
tempocenaacuterio simples de telnet
3 Camada de Transporte 3b-5
TCP Tempo de Resposta (RTT ndash Round Trip Time) e TemporizaccedilatildeoP como escolher
valor do temporizador TCP
maior que o RTT note RTT pode
variar muito curto
temporizaccedilatildeo prematura retransmissotildees satildeo
desnecessaacuterias muito longo reaccedilatildeo
demorada agrave perda de segmentos
P como estimar RTT RTTamostra tempo medido
entre a transmissatildeo do segmento e o recebimento do ACK correspondente ignora retransmissotildees
RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado usa vaacuterias mediccedilotildees
recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3b-6
TCP Tempo de Resposta (RTT) e TemporizaccedilatildeoRTT_estimado = (1-) RTT_estimado + RTT_amostra
meacutedia corrente exponencialmente ponderada influecircncia de cada amostra diminui exponencialmente
com o tempo valor tiacutepico de = 0125
3 Camada de Transporte 3b-7
Exemplo de estimativa do RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
3 Camada de Transporte 3b-8
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo RTT_estimado mais uma ldquomargem de seguranccedilardquo
grande variaccedilatildeo no RTT_estimado -gt maior margem de seguranccedila
primeiro estima o quanto a RTTamostra desvia do RTT_estimado
Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1-) Desvio_RTT + |RTT_amostra - RTT_estimado|
3 Camada de Transporte 3b-9
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-10
Transferecircncia de dados confiaacutevel do TCP O TCP cria um
serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
Segmentos em seacuterie (pipelined)
Acks cumulativos O TCP usa um uacutenico
temporizador para retransmissotildees
As retransmissotildees satildeo disparadas por estouros de
temporizaccedilatildeo acks duplicados
Considere inicialmente um transmissor TCP simplificado ignora acks duplicados ignora controles de
fluxo e de congestionamento
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-2
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
transmissatildeo full duplex fluxo de dados bi-
direcional na mesma conexatildeo
MSS tamanho maacuteximo de segmento
orientado a conexatildeo handshaking (troca de
msgs de controle) inicia estado de remetente receptor antes de trocar dados
fluxo controlado receptor natildeo seraacute afogado
ponto a ponto 1 remetente 1 receptor
fluxo de bytes ordenados confiaacutevel natildeo estruturado em msgs
com paralelismo (pipelined) tam da janela ajustado por
controle de fluxo e congestionamento do TCP
buffers de envio e recepccedilatildeo
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
3 Camada de Transporte 3b-3
TCP estrutura do segmento
no porta origemno porta dest
32 bits
dados daaplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncianuacutemero de
reconhecimentojanela receptor
ptr dados urgchecksum
FSRPAUtamcab
semuso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACKvaacutelido
PSH envia dados jaacute(pouco usado)
RST SYN FINgestatildeo de conexatildeo
(comandos deestabelecimento
liberaccedilatildeo)
no bytes rcpt queraceitar
contagem de dadospor bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3b-4
TCP nos de seq e ACKsNos de seq
ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKs no de seq do proacutex
byte esperado do outro lado
ACK cumulativoP como receptor trata
segmentos fora da ordem R espec do TCP
omissa - deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsuaacuterioteclalsquoCrsquo
A reconhecechegada
do lsquoCrsquoecoado
B reconhecechegada de
lsquoCrsquo ecoalsquoCrsquo de volta
tempocenaacuterio simples de telnet
3 Camada de Transporte 3b-5
TCP Tempo de Resposta (RTT ndash Round Trip Time) e TemporizaccedilatildeoP como escolher
valor do temporizador TCP
maior que o RTT note RTT pode
variar muito curto
temporizaccedilatildeo prematura retransmissotildees satildeo
desnecessaacuterias muito longo reaccedilatildeo
demorada agrave perda de segmentos
P como estimar RTT RTTamostra tempo medido
entre a transmissatildeo do segmento e o recebimento do ACK correspondente ignora retransmissotildees
RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado usa vaacuterias mediccedilotildees
recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3b-6
TCP Tempo de Resposta (RTT) e TemporizaccedilatildeoRTT_estimado = (1-) RTT_estimado + RTT_amostra
meacutedia corrente exponencialmente ponderada influecircncia de cada amostra diminui exponencialmente
com o tempo valor tiacutepico de = 0125
3 Camada de Transporte 3b-7
Exemplo de estimativa do RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
3 Camada de Transporte 3b-8
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo RTT_estimado mais uma ldquomargem de seguranccedilardquo
grande variaccedilatildeo no RTT_estimado -gt maior margem de seguranccedila
primeiro estima o quanto a RTTamostra desvia do RTT_estimado
Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1-) Desvio_RTT + |RTT_amostra - RTT_estimado|
3 Camada de Transporte 3b-9
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-10
Transferecircncia de dados confiaacutevel do TCP O TCP cria um
serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
Segmentos em seacuterie (pipelined)
Acks cumulativos O TCP usa um uacutenico
temporizador para retransmissotildees
As retransmissotildees satildeo disparadas por estouros de
temporizaccedilatildeo acks duplicados
Considere inicialmente um transmissor TCP simplificado ignora acks duplicados ignora controles de
fluxo e de congestionamento
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-3
TCP estrutura do segmento
no porta origemno porta dest
32 bits
dados daaplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncianuacutemero de
reconhecimentojanela receptor
ptr dados urgchecksum
FSRPAUtamcab
semuso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACKvaacutelido
PSH envia dados jaacute(pouco usado)
RST SYN FINgestatildeo de conexatildeo
(comandos deestabelecimento
liberaccedilatildeo)
no bytes rcpt queraceitar
contagem de dadospor bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3b-4
TCP nos de seq e ACKsNos de seq
ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKs no de seq do proacutex
byte esperado do outro lado
ACK cumulativoP como receptor trata
segmentos fora da ordem R espec do TCP
omissa - deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsuaacuterioteclalsquoCrsquo
A reconhecechegada
do lsquoCrsquoecoado
B reconhecechegada de
lsquoCrsquo ecoalsquoCrsquo de volta
tempocenaacuterio simples de telnet
3 Camada de Transporte 3b-5
TCP Tempo de Resposta (RTT ndash Round Trip Time) e TemporizaccedilatildeoP como escolher
valor do temporizador TCP
maior que o RTT note RTT pode
variar muito curto
temporizaccedilatildeo prematura retransmissotildees satildeo
desnecessaacuterias muito longo reaccedilatildeo
demorada agrave perda de segmentos
P como estimar RTT RTTamostra tempo medido
entre a transmissatildeo do segmento e o recebimento do ACK correspondente ignora retransmissotildees
RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado usa vaacuterias mediccedilotildees
recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3b-6
TCP Tempo de Resposta (RTT) e TemporizaccedilatildeoRTT_estimado = (1-) RTT_estimado + RTT_amostra
meacutedia corrente exponencialmente ponderada influecircncia de cada amostra diminui exponencialmente
com o tempo valor tiacutepico de = 0125
3 Camada de Transporte 3b-7
Exemplo de estimativa do RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
3 Camada de Transporte 3b-8
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo RTT_estimado mais uma ldquomargem de seguranccedilardquo
grande variaccedilatildeo no RTT_estimado -gt maior margem de seguranccedila
primeiro estima o quanto a RTTamostra desvia do RTT_estimado
Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1-) Desvio_RTT + |RTT_amostra - RTT_estimado|
3 Camada de Transporte 3b-9
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-10
Transferecircncia de dados confiaacutevel do TCP O TCP cria um
serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
Segmentos em seacuterie (pipelined)
Acks cumulativos O TCP usa um uacutenico
temporizador para retransmissotildees
As retransmissotildees satildeo disparadas por estouros de
temporizaccedilatildeo acks duplicados
Considere inicialmente um transmissor TCP simplificado ignora acks duplicados ignora controles de
fluxo e de congestionamento
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-4
TCP nos de seq e ACKsNos de seq
ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKs no de seq do proacutex
byte esperado do outro lado
ACK cumulativoP como receptor trata
segmentos fora da ordem R espec do TCP
omissa - deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsuaacuterioteclalsquoCrsquo
A reconhecechegada
do lsquoCrsquoecoado
B reconhecechegada de
lsquoCrsquo ecoalsquoCrsquo de volta
tempocenaacuterio simples de telnet
3 Camada de Transporte 3b-5
TCP Tempo de Resposta (RTT ndash Round Trip Time) e TemporizaccedilatildeoP como escolher
valor do temporizador TCP
maior que o RTT note RTT pode
variar muito curto
temporizaccedilatildeo prematura retransmissotildees satildeo
desnecessaacuterias muito longo reaccedilatildeo
demorada agrave perda de segmentos
P como estimar RTT RTTamostra tempo medido
entre a transmissatildeo do segmento e o recebimento do ACK correspondente ignora retransmissotildees
RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado usa vaacuterias mediccedilotildees
recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3b-6
TCP Tempo de Resposta (RTT) e TemporizaccedilatildeoRTT_estimado = (1-) RTT_estimado + RTT_amostra
meacutedia corrente exponencialmente ponderada influecircncia de cada amostra diminui exponencialmente
com o tempo valor tiacutepico de = 0125
3 Camada de Transporte 3b-7
Exemplo de estimativa do RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
3 Camada de Transporte 3b-8
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo RTT_estimado mais uma ldquomargem de seguranccedilardquo
grande variaccedilatildeo no RTT_estimado -gt maior margem de seguranccedila
primeiro estima o quanto a RTTamostra desvia do RTT_estimado
Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1-) Desvio_RTT + |RTT_amostra - RTT_estimado|
3 Camada de Transporte 3b-9
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-10
Transferecircncia de dados confiaacutevel do TCP O TCP cria um
serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
Segmentos em seacuterie (pipelined)
Acks cumulativos O TCP usa um uacutenico
temporizador para retransmissotildees
As retransmissotildees satildeo disparadas por estouros de
temporizaccedilatildeo acks duplicados
Considere inicialmente um transmissor TCP simplificado ignora acks duplicados ignora controles de
fluxo e de congestionamento
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-5
TCP Tempo de Resposta (RTT ndash Round Trip Time) e TemporizaccedilatildeoP como escolher
valor do temporizador TCP
maior que o RTT note RTT pode
variar muito curto
temporizaccedilatildeo prematura retransmissotildees satildeo
desnecessaacuterias muito longo reaccedilatildeo
demorada agrave perda de segmentos
P como estimar RTT RTTamostra tempo medido
entre a transmissatildeo do segmento e o recebimento do ACK correspondente ignora retransmissotildees
RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado usa vaacuterias mediccedilotildees
recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3b-6
TCP Tempo de Resposta (RTT) e TemporizaccedilatildeoRTT_estimado = (1-) RTT_estimado + RTT_amostra
meacutedia corrente exponencialmente ponderada influecircncia de cada amostra diminui exponencialmente
com o tempo valor tiacutepico de = 0125
3 Camada de Transporte 3b-7
Exemplo de estimativa do RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
3 Camada de Transporte 3b-8
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo RTT_estimado mais uma ldquomargem de seguranccedilardquo
grande variaccedilatildeo no RTT_estimado -gt maior margem de seguranccedila
primeiro estima o quanto a RTTamostra desvia do RTT_estimado
Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1-) Desvio_RTT + |RTT_amostra - RTT_estimado|
3 Camada de Transporte 3b-9
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-10
Transferecircncia de dados confiaacutevel do TCP O TCP cria um
serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
Segmentos em seacuterie (pipelined)
Acks cumulativos O TCP usa um uacutenico
temporizador para retransmissotildees
As retransmissotildees satildeo disparadas por estouros de
temporizaccedilatildeo acks duplicados
Considere inicialmente um transmissor TCP simplificado ignora acks duplicados ignora controles de
fluxo e de congestionamento
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-6
TCP Tempo de Resposta (RTT) e TemporizaccedilatildeoRTT_estimado = (1-) RTT_estimado + RTT_amostra
meacutedia corrente exponencialmente ponderada influecircncia de cada amostra diminui exponencialmente
com o tempo valor tiacutepico de = 0125
3 Camada de Transporte 3b-7
Exemplo de estimativa do RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
3 Camada de Transporte 3b-8
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo RTT_estimado mais uma ldquomargem de seguranccedilardquo
grande variaccedilatildeo no RTT_estimado -gt maior margem de seguranccedila
primeiro estima o quanto a RTTamostra desvia do RTT_estimado
Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1-) Desvio_RTT + |RTT_amostra - RTT_estimado|
3 Camada de Transporte 3b-9
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-10
Transferecircncia de dados confiaacutevel do TCP O TCP cria um
serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
Segmentos em seacuterie (pipelined)
Acks cumulativos O TCP usa um uacutenico
temporizador para retransmissotildees
As retransmissotildees satildeo disparadas por estouros de
temporizaccedilatildeo acks duplicados
Considere inicialmente um transmissor TCP simplificado ignora acks duplicados ignora controles de
fluxo e de congestionamento
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-7
Exemplo de estimativa do RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
3 Camada de Transporte 3b-8
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo RTT_estimado mais uma ldquomargem de seguranccedilardquo
grande variaccedilatildeo no RTT_estimado -gt maior margem de seguranccedila
primeiro estima o quanto a RTTamostra desvia do RTT_estimado
Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1-) Desvio_RTT + |RTT_amostra - RTT_estimado|
3 Camada de Transporte 3b-9
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-10
Transferecircncia de dados confiaacutevel do TCP O TCP cria um
serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
Segmentos em seacuterie (pipelined)
Acks cumulativos O TCP usa um uacutenico
temporizador para retransmissotildees
As retransmissotildees satildeo disparadas por estouros de
temporizaccedilatildeo acks duplicados
Considere inicialmente um transmissor TCP simplificado ignora acks duplicados ignora controles de
fluxo e de congestionamento
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-8
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo RTT_estimado mais uma ldquomargem de seguranccedilardquo
grande variaccedilatildeo no RTT_estimado -gt maior margem de seguranccedila
primeiro estima o quanto a RTTamostra desvia do RTT_estimado
Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1-) Desvio_RTT + |RTT_amostra - RTT_estimado|
3 Camada de Transporte 3b-9
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-10
Transferecircncia de dados confiaacutevel do TCP O TCP cria um
serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
Segmentos em seacuterie (pipelined)
Acks cumulativos O TCP usa um uacutenico
temporizador para retransmissotildees
As retransmissotildees satildeo disparadas por estouros de
temporizaccedilatildeo acks duplicados
Considere inicialmente um transmissor TCP simplificado ignora acks duplicados ignora controles de
fluxo e de congestionamento
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-9
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-10
Transferecircncia de dados confiaacutevel do TCP O TCP cria um
serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
Segmentos em seacuterie (pipelined)
Acks cumulativos O TCP usa um uacutenico
temporizador para retransmissotildees
As retransmissotildees satildeo disparadas por estouros de
temporizaccedilatildeo acks duplicados
Considere inicialmente um transmissor TCP simplificado ignora acks duplicados ignora controles de
fluxo e de congestionamento
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-10
Transferecircncia de dados confiaacutevel do TCP O TCP cria um
serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
Segmentos em seacuterie (pipelined)
Acks cumulativos O TCP usa um uacutenico
temporizador para retransmissotildees
As retransmissotildees satildeo disparadas por estouros de
temporizaccedilatildeo acks duplicados
Considere inicialmente um transmissor TCP simplificado ignora acks duplicados ignora controles de
fluxo e de congestionamento
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-11
Eventos do transmissor TCP
Dados recebidos da apl Cria segmento com no
de sequumlecircncia (nseq) nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
Valor do temporizador calculado anteriormente
estouro do temporizador Retransmite o segmento
que causou o estouro do temporizador
Reinicia o temporizador
Recepccedilatildeo de Ack Se reconhecer segmentos
ainda natildeo reconhecidos atualizar informaccedilatildeo
sobre o que foi reconhecido
religa o temporizador se ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-12
Transmis-sorTCP (simplificado)
NextSeqNum = nuacutemero de sequumlecircncia inicial SendBase = nuacutemero de sequumlecircncia inicial
repita (sempre) switch(event)
event dados recebidos da aplicaccedilatildeo acima cria segmento TCP com nuacutemero de sequumlecircncia NextSeqNum se (temporizador estiver desligado) liga o temporizador passa segmento para IP NextSeqNum = NextSeqNum + comprimento(dados)
event estouro do temporizador retransmite segmento ainda natildeo reconhecido com o menor nuacutemero de sequumlecircncia reinicia o temporizador
event ACK recebido com valor de campo ACK de y se (y gt SendBase) ACK cumulativo de todos dados ateacute y SendBase = y se (houver segmentos ainda natildeo reconhecidos) liga o temporizador senatildeo desliga o temporizador fim do repita sempre
ComentaacuteriobullSendBase-1 uacuteltimo byte reconhecido cumulativamenteExemplobullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-13
TCP cenaacuterios de retransmissatildeo
Host A
Seq=100 20 bytes data
ACK=100
tempoestouro prematurodo temporizador
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
Seq=92 8 bytes data
ACK=100
tempo
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-14
TCP cenaacuterios de retransmissatildeo (mais)
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
Seq=100 20 bytes data
ACK=120
tempo
SendBase= 120
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-15
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordemsem lacunasanteriores jaacute reconhecidos
chegada de segmento em ordemsem lacunasum ACK retardado pendente
chegada de segmento fora de ordem com no de seq maiorque esperado -gt lacuna
chegada de segmento que preenche a lacuna parcial oucompletamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500msp proacutex segmento Se natildeo chegarsegmento envia ACK
envia imediatamente um uacutenicoACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento noiniacutecio da lacuna
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-16
Retransmissatildeo raacutepida
O intervalo do temporizador eacute frequumlentemente bastante longo longo atraso antes de
retransmitir um pacote perdido
Detecta segmentos perdidos atraveacutes de ACKs duplicados O transmissor
normalmente envia diversos segmentos
Se um segmento se perder provavelmente haveraacute muitos ACKs duplicados
Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-17
event recebido ACK com valor do campo ACK de y if (y gt SendBase) SendBase = y if (houver segmentos ainda natildeo reconhecidos) liga temporizador
else desliga temporizador else incrementa contador de ACKs duplicados recebidos para y if (contador de ACKs duplicados recebidor para y = 3) retransmita segmento com nuacutemero de sequumlecircncia y
Algoritmo de retransmissatildeo raacutepida
um ACK duplicado para umsegmento jaacute reconhecido
Retransmissatildeo raacutepida
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-18
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-19
Controle de Fluxo do TCP
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
Processo da apl pode demorar a ler do receptor
o transmissor natildeo inundaraacute o buffer do
receptor transmitindo muito e
rapidamente
Controle de fluxo
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-20
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
espaccedilo livre no buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow Garante que o buffer
do receptor natildeo transbordaraacute
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-21
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-22
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
inicializam variaacuteveis TCP nos de seq buffers info s controle de
fluxo (pex RcvWindow) cliente iniciador de conexatildeo Socket clientSocket = new
Socket(hostnameport number) servidor contactado por cliente Socket connectionSocket =
welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos
Passo 1 sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no inicial de seq natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK aloca buffers especifica no inicial de seq
servidor-gt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-23
TCP Gerenciamento de Conexotildees (cont)
Encerrando uma conexatildeo
cliente fecha soquete clientSocketclose()
Passo 1 sistema cliente envia segmento de controle FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Encerra a conexatildeo enviando FIN
cliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
esp
era
te
mpori
zada
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-24
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
Entre em ldquoespera temporizadardquo - responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
esp
era
tem
pori
zada
fechada
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-25
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-26
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-27
Princiacutepios de Controle de Congestionamento
Congestionamento informalmente ldquomuitas fontes enviando muitos
dados muito rapidamente para a rede poder tratarrdquo
diferente de controle de fluxo manifestaccedilotildees
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 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-28
Causascustos de congestionamento cenaacuterio 1
dois remetentes dois receptores
um roteador buffers infinitos
sem retransmissatildeo
grandes retardos qdo congestionada
vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host Ain original data
Host B
out
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-29
Causascustos de congestionamento cenaacuterio 2
Um roteador buffers finitos retransmissatildeo 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 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-30
sempre (goodput)
retransmissatildeo ldquoperfeitardquo apenas com perdas
retransmissatildeo de pacotes atrasados (natildeo perdidos) torna
maior (do que o caso perfeito) para o mesmo
Causascustos de congestionamento cenaacuterio 2
in
out
=
in
out
gt
in
outR2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
ldquocustosrdquo de congestionamento mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-31
Causascustos de congestionamento cenaacuterio 3 quatro remetentes caminhos com muacuteltiplos enlaces temporizaccedilatildeoretransmissatildeo
in
P o que acontece agrave medida que e crescem
in
finite shared output link buffers
Host Ain original data
Host B
out
in original data plus retransmitted data
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-32
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento quando pacote eacute descartado qq capacidade de transmissatildeo jaacute
usada (antes do descarte) para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-33
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
natildeo tem realimentaccedilatildeo expliacutecita 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 TCPIP ECN ATM)
taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-34
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate)
ldquoserviccedilo elaacutesticordquo se caminho do
remetente ldquosubcarregadordquo remetente deveria
usar banda disponiacutevel se caminho do
remetente congestionado remetente reduzido agrave
taxa miacutenima garantida
ceacutelulas RM (resource management)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) bit NI natildeo aumente a taxa
(congestionamento moderado) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM devolvidas ao
remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-35
Estudo de caso controle de congestionamento em ABR da ATM
Campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode diminuir valor ER na ceacutelula taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bit EFCI em ceacutelulas de dados ligado por comutador
congestionado se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga
bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-36
Conteuacutedo do Capiacutetulo 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 UDP Transporte natildeo orientado a conexatildeo
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado a conexatildeo TCP transferecircncia
confiaacutevel controle de fluxo gerenciamento de
conexotildees 36 Princiacutepios de
controle de congestionamento
37 Controle de congestionamento do TCP
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-37
Controle de Congestionamento do TCP
controle fim-a-fim (sem assistecircncia da rede)
transmissor limita a transmissatildeo LastByteSent-LastByteAcked
CongWin Praticamente
CongWin eacute dinacircmica em funccedilatildeo 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) apoacutes evento de perda
trecircs mecanismos AIMD partida lenta conservador apoacutes
eventos de estouro de temporizaccedilatildeo
taxa = CongWin
RTT Bytesseg
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-38
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
decrescimento multiplicativo corta CongWin pela metade apoacutes evento de perda
crescimento aditivo incrementa CongWin de 1 MSS a cada RTT na ausecircncia de eventos de perda sondagem
Conexatildeo TCP de longa duraccedilatildeo
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-39
Partida Lenta do TCP
No iniacutecio da conexatildeo CongWin = 1 MSS Exemplo MSS = 500
bytes amp RTT = 200 mseg
taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT eacute desejaacutevel um
crescimento raacutepido ateacute uma taxa consideraacutevel
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-40
No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda duplica CongWin a
cada RTT atraveacutes do incremento
da CongWin para cada ACK recebido
Resumo taxa inicial eacute baixa mas cresce rapidamente de forma exponencial
TCP Partida lenta (mais)
Estaccedilatildeo A
um segmento
RTT
Estaccedilatildeo B
tempo
dois segmentos
quqtro segmentos
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-41
Refinamento Apoacutes 3 ACKs duplicados
corta CongWin pela metade a janela depois cresce linearmente
Mas apoacutes estouro de temporizador CongWin eacute reduzida a 1 MSS janela cresce exponencialmente ateacute um limiar depois cresce
linearmente
bull 3 ACKs duplicados indica que a rede eacute capaz de entregar alguns segmentos bull estouro de temporizador antes de 3 ACKs duplicados eacute mais ldquoalarmanterdquo
Filosofia
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-42
Refinamento (mais)P Quando o crescimento
exponencial deve mudar para linear
R Quando CongWin atinge 12 do seu valor antes do estouro do temporizador
Implementaccedilatildeo Limiar (Threshold)
variaacutevel Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-43
Resumo Controle de Congestionamento do TCP Quando a CongWin estaacute abaixo do limiar
transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-44
Controle de congestionamento do transmissor TCP
Evento Estado Accedilatildeo do Transmissor TCP Comentaacuterio
ACK recebido para dados ainda natildeo reconhecidos
Partida lenta
CongWin = CongWin + MSS If (CongWin gt Limiar) seta estado para ldquoEvitar congestionamentordquo
Resulta na duplicaccedilatildeo da CongWin a cada RTT
ACK recebido para dados ainda natildeo reconhecidos
Evitar congestionamento
CongWin = CongWin+MSS (MSSCongWin)
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados
qualquer Limiar = CongWin2 CongWin = LimiarSeta estado para ldquoEvitar Congestionamentordquo
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Estouro de temporizador
qualquer Limiar = CongWin2 CongWin = 1 MSSSeta estado para ldquoPartida lentardquo
Entra estado de ldquopartida lentardquo
ACK duplicado
qualquer Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
CongWin e Threshold natildeo se alteram
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-45
Vazatildeo (throughput) do TCP
Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT Ignore a partida lenta
Seja W o tamanho da janela quando ocorre a perda
Quando a janela eacute W a vazatildeo eacute WRTT Imediatamente apoacutes a perda janela cai
a W2 vazatildeo cai para W2RTT Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-46
Futuro do TCP
Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
Requer janela de W = 83333 segmentos em tracircnsito
Vazatildeo em termos de taxa de perdas
L = 210-10 Taxa de perdas demasiado baixa
Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
LRTT
MSS221
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-47
Equidade (Fairness) do TCP
Meta de equidade se K sessotildees TCP compartilham o mesmo enlace de gargalo com largura de banda R cada uma deve obter uma taxa meacutedia de RK
TCP conexatildeo 1
Roteadorgargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-48
Por quecirc TCP eacute justo
Duas sessotildees concorrentes Aumento aditivo daacute gradiente de 1 enquanto vazatildeo
aumenta decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o d
a c
onexatildeo 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
evitar congestionamento aumento aditivoperda diminui janela por fator de 2
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-49
Justeza (mais)
Justeza e UDP Apls multimiacutedia
frequumlentemente natildeo usam TCP natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
Preferem usar o UDP Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
nada impede que as apls abram conexotildees paralelas entre 2 hosts
Os browsers Web fazem isto Exemplo canal com taxa R
compartilhado por 9 conexotildees nova apl pede 1 TCP recebe
taxa R10 nova apl pede 11 TCPs
recebe taxa R2
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-50
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
Estabelecimento de conexatildeo TCP
retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees 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 retransmissotildees (sem
perdas sem erros)Dois casos a considerar WSR gt RTT + SR ACK do primeiro segmento na
janela chega antes de enviar todos dados na janela WSR lt RTT + SR aguarda ACK depois de enviar
todos os dados na janela
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-51
Janela de congestionamento fixa (1)
Primeiro casoWSR gt RTT + SR ACK
para o primeiro segmento na janela retorna antes da transmissatildeo de uma janela completa de dados
latecircncia = 2RTT + OR
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-52
Janela de congestionamento fixa (2)
Segundo caso WSR lt RTT + SR
espera por ACK apoacutes transmitir uma janela completa de dados
latecircncia = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-53
TCP modelagem de latecircncia partida lenta Agora supomos que a janela cresce agrave la partida lenta Mostramos que a latecircncia de um objeto de tamanho O
eacute
R
S
R
SRTTP
R
ORTTLatecircncia P )12(2
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1min KQP
- onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
- e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-54
TCP modelagem de latecircncia partida lenta (cont)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Exemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircnciabull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objetobull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-55
TCP modelagem de latecircncia partida lenta (cont)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
oTempoparadRTTR
O
P
P
k
k
P
pp
)12(2
22
2latecircncia
1
1
1
janela eacutesima a apoacutes parado tempo
2 1
k
R
SRTT
R
S k
entosreconhecim os recebaservidor o que ateacute
segmentosenviar a comeccedilaservidor o que desde tempoRTTR
S
janela eacutesima-k ar transmitipara tempo2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-56
Modelagem de Latecircncia do TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto detamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-57
Modelagem do HTTP Assuma que a paacutegina Web eacute composta por
1 paacutegina base HTML (de tamanho O bits) M imagens (cada uma de tamanho O bits)
HTTP natildeo-persistente M+1 connexotildees TCP em seacuterie Tempo de resposta = (M+1)OR + (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)OR + 3RTT + soma dos
tempos ociosos HTTP natildeo-persistente com X conexotildees paralelas
Suponha que MX seja um inteiro 1 conexatildeo TCP para arquivo base Conjuntos de MX conexotildees paralelas para as
imagens Tempo de resposta = (M+1)OR + (MX + 1)2RTT +
soma dos tempos ociosos
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-58
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
Tempo de resposta do HTTPRTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de conexatildeo e de resposta satildeo dominados pelo tempo de transmissatildeo
Conexotildees persistentes resultam num melhoramento pequeno em relaccedilatildeo agraves conexotildees paralelas
em segundos
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-59
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 sec O = 5 Kbytes M=10 e X=5
Para grandes RTTs o tempo de resposta eacute dominado pelos atrasos de estabelecimento de conexotildees e de partida lentaConexotildees 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 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-
3 Camada de Transporte 3b-60
Capiacutetulo 3 Resumo
Princiacutepios atraacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia confiaacutevel de
dados controle de fluxo controle de congestionamento
instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
Proacuteximo capiacutetulo saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
entramos no ldquonuacutecleordquoda rede
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
-