mba, itil v3, perito computacional forense · 3: camada de transporte 3b29 controle de fluxo do...
TRANSCRIPT
TCP IP
Marcos Monteiro MBA ITIL V3 Perito computacional Forense
httpwwwmarcosmonteirocombr contatomarcosmonteirocombr
A
Internet nasceu da
internet 2
Histoacuteria
Histoacuteria da comunicaccedilatildeo da Internet
3
e o TCPIP
4
Se lembra do modelo OSI
5
Se lembra do modelo OSI
6
TCPIP
7
8
9
10
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
A
Internet nasceu da
internet 2
Histoacuteria
Histoacuteria da comunicaccedilatildeo da Internet
3
e o TCPIP
4
Se lembra do modelo OSI
5
Se lembra do modelo OSI
6
TCPIP
7
8
9
10
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
Histoacuteria
Histoacuteria da comunicaccedilatildeo da Internet
3
e o TCPIP
4
Se lembra do modelo OSI
5
Se lembra do modelo OSI
6
TCPIP
7
8
9
10
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
e o TCPIP
4
Se lembra do modelo OSI
5
Se lembra do modelo OSI
6
TCPIP
7
8
9
10
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
Se lembra do modelo OSI
5
Se lembra do modelo OSI
6
TCPIP
7
8
9
10
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
Se lembra do modelo OSI
6
TCPIP
7
8
9
10
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
TCPIP
7
8
9
10
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
8
9
10
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
9
10
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
10
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy11
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581 bull transmissatildeo full duplex
ndash fluxo de dados bishydirecional na mesma conexatildeo
ndash MSS tamanho maacuteximo de segmento
bull orientado a conexatildeo ndash handshaking (troca de msgs de controle) inicia estado de remetente receptor antes de trocar dados
bull fluxo controlado ndash receptor natildeo seraacute afogado
bull ponto a ponto ndash 1 remetente 1 receptor
bull fluxo de bytes ordenados confiaacutevel ndash natildeo estruturado em msgs
bull com paralelismo (pipelined) ndash tam da janela ajustado por controle de fluxo e congestionamento do TCP
bull buffers de envio e recepccedilatildeo socket door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy12
TCP estrutura do segmento
no porta origem no porta dest
32 bits
dados da aplicaccedilatildeo
(tam variaacutevel)
nuacutemero de sequumlecircncia nuacutemero de reconhecimento
janela receptor ptr dados urg checksum
F S R P A U tam cab
sem uso
Opccedilotildees (tam variaacutevel)
URG dados urgentes (pouco usados)
ACK no ACK vaacutelido
PSH envia dados jaacute (pouco usado)
RST SYN FIN gestatildeo de conexatildeo
(comandos de estabelecimento
liberaccedilatildeo)
no bytes rcpt quer aceitar
contagem de dados por bytes (natildeo segmentos)
checksum Internet
(como UDP)
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy13
TCP nos de seq e ACKs Nos de seq
ndash ldquonuacutemerordquodentro do fluxo de bytes do primeiro byte de dados do segmento
ACKsndash no de seq do proacutex byte esperado do outro lado
ndash ACK cumulativo P como receptor trata
segmentos fora da ordem ndash R espec do TCP omissa shy deixado ao implementador
Estaccedilatildeo A Estaccedilatildeo B
Usuaacuterio tecla
lsquoC‛
A reconhece chegada
do lsquoC‛ ecoado
B reconhece chegada de
lsquoC‛ ecoa lsquoC‛ de volta
tempo cenaacuterio simples de telnet
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy14
TCP Tempo de Resposta (RTT ndash Round Trip Time) e Temporizaccedilatildeo
P como escolher valor do temporizador TCP
bull maior que o RTT ndash note RTT pode variar
bull muito curto temporizaccedilatildeo prematura ndash retransmissotildees satildeo desnecessaacuterias
bull muito longo reaccedilatildeo demorada agrave perda de segmentos
P como estimar RTT bull RTTamostra tempo medido entre
a transmissatildeo do segmento e o recebimento do ACK correspondente ndash ignora retransmissotildees
bull RTT_amostra vai variar queremos ldquoamaciadorrdquo de RTT estimado ndash usa vaacuterias mediccedilotildees recentes natildeo apenas o valor corrente (RTT_amostra)
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy15
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
RTT_estimado = (1shyα) RTT_estimado + αRTT_amostra
r meacutedia corrente exponencialmente ponderada r influecircncia de cada amostra diminui exponencialmente
com o tempo r valor tiacutepico de α = 0125
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy16
Exemplo de estimativa do RTT RTT 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 (m
illise
cond
s)
SampleRTT Estimated RTT
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy17
TCP Tempo de Resposta (RTT) e Temporizaccedilatildeo
Escolhendo o intervalo de temporizaccedilatildeo bull RTT_estimado mais uma ldquomargem de seguranccedilardquo
ndash grande variaccedilatildeo no RTT_estimado shygt maior margem de seguranccedila
bull primeiro estima o quanto a RTTamostra desvia do RTT_estimado
bull Entatildeo seta o temporizador para
Temporizaccedilatildeo = RTT_estimado + 4Desvio_RTT
Desvio_RTT = (1shyβ) Desvio_RTT + β|RTT_amostra shy RTT_estimado|
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy18
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy19
Transferecircncia de dados confiaacutevel do TCP
bull O TCP cria um serviccedilo rdt sobre o serviccedilo natildeo confiaacutevel do IP
bull Segmentos em seacuterie (pipelined)
bull Acks cumulativos bull O TCP usa um uacutenico temporizador para retransmissotildees
bull As retransmissotildees satildeo disparadas por ndash estouros de temporizaccedilatildeo
ndash acks duplicados
bull Considere inicialmente um transmissor TCP simplificado ndash ignora acks duplicados ndash ignora controles de fluxo e de congestionamento
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy20
Eventos do transmissor TCP Dados recebidos da apl bull Cria segmento com no de
sequumlecircncia (nseq) bull nseq eacute o nuacutemero de
sequumlecircncia do primeiro byte do segmento
bull Liga o temporizador se jaacute natildeo estiver ligado (temporizaccedilatildeo do segmento mais antigo ainda natildeo reconhecido)
bull Valor do temporizador calculado anteriormente
estouro do temporizador bull Retransmite o segmento que
causou o estouro do temporizador
bull Reinicia o temporizador Recepccedilatildeo de Ack bull Se reconhecer segmentos
ainda natildeo reconhecidos ndash atualizar informaccedilatildeo sobre o
que foi reconhecido ndash religa o temporizador se
ainda houver segmentos pendentes (natildeo reconhecidos)
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy21
Transmisshy 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
Comentaacuterio bullSendBase-1 uacuteltimo byte reconhecido cumulativamente Exemplo bullSendBase-1 = 71 y= 73 portanto o receptor quer receber 73+ bully gt SendBase portanto novos dados foram reconhecidos
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy22
TCP cenaacuterios de retransmissatildeo Host A
tempo estouro prematuro do temporizador
Host B
Seq=
92 t
imeo
ut
Host A
loss
tim
eout
cenaacuterio de perda de ACK
Host B
X
tempo
Seq=
92 t
imeo
ut
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy23
TCP cenaacuterios de retransmissatildeo (mais)
Host A
loss
tim
eout
Cenaacuterio de ACK cumulativo
Host B
X
tempo
SendBase = 120
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy24
TCP geraccedilatildeo de ACKs [RFCs 1122 2581]
Evento no Receptor
chegada de segmento em ordem sem lacunas anteriores jaacute reconhecidos
chegada de segmento em ordem sem lacunas um ACK retardado pendente
chegada de segmento fora de ordem com no de seq maior que esperado shygt lacuna
chegada de segmento que preenche a lacuna parcial ou completamente
Accedilatildeo do Receptor TCP
ACK retardado Espera ateacute 500ms p proacutex segmento Se natildeo chegar segmento envia ACK
envia imediatamente um uacutenico ACK cumulativo
envia ACK duplicado indicando no de seqdo proacuteximo byte esperado
ACK imediato se segmento no iniacutecio da lacuna
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy25
Retransmissatildeo raacutepida bull O intervalo do temporizador
eacute frequumlentemente bastante longo ndash longo atraso antes de
retransmitir um pacote perdido
bull Detecta segmentos perdidos atraveacutes de ACKs duplicados ndash O transmissor normalmente
envia diversos segmentos ndash Se um segmento se perder
provavelmente haveraacute muitos ACKs duplicados
bull Se o transmissor receber 3 ACKs para os mesmos dados ele supotildee que o segmento apoacutes os dados reconhecidos se perdeu ndash Retransmissatildeo raacutepida
retransmite o segmento antes que estoure o temporizador
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy26
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 um segmento jaacute reconhecido Retransmissatildeo raacutepida
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy27
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy28
Controle de Fluxo do TCP
bull Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
bull serviccedilo de casamento de velocidades adaptando a taxa de transmissatildeo agrave taxa de leitura da aplicaccedilatildeo receptora
r 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 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy29
Controle de Fluxo do TCP como funciona
(Suponha que o receptor TCP segmentos fora de ordem)
bull espaccedilo livre no buffer = RcvWindow = RcvBuffershy[LastByteRcvd shy
LastByteRead]
bull O receptor anuncia o espaccedilo livre incluindo o valor da RcvWindow nos segmentos
bull O transmissor limita os dados natildeo reconhecidos ao tamanho da RcvWindow ndash Garante que o buffer do receptor natildeo transbordaraacute
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy30
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy31
TCP Gerenciamento de Conexotildees
Lembrete Remetente receptor TCP estabelecem ldquoconexatildeordquo antes de trocar segmentos de dados
bull inicializam variaacuteveis TCP ndash nos de seq ndash buffers info s controle de fluxo (pex RcvWindow)
bull cliente iniciador de conexatildeo Socket clientSocket = new Socket(hostnameport
number)
bull servidor contactado por cliente Socket connectionSocket = welcomeSocketaccept()
Inicializaccedilatildeo em 3 tempos Passo 1 sistema cliente envia segmento
de controle SYN do TCP ao servidor ndash especifica no inicial de seq ndash natildeo envia dados
Passo 2 sistema servidor recebe SYN responde com segmento de controle SYNACK ndash aloca buffers ndash especifica no inicial de seq
servidorshygt receptor
Passo 3 receptor recebe SYNACK responde com segmento ACK que pode conter dados
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy32
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 servidor
fechar
fechar
fechada
espe
ra
tem
pori
zada
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy33
TCP Gerenciamento de Conexotildees (cont)
Passo 3 cliente recebe FIN responde com ACK
ndash Entre em ldquoespera temporizadardquo shy responderaacute com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo encerrada
Note com pequena modificaccedilatildeo consegue tratar de FINs simultacircneos
cliente servidor
fechando
fechando
fechada
espe
ra
tem
pori
zada
fechada
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy34
TCP Gerenciamento de Conexotildees (cont)
Ciclo de vida de cliente TCP
Ciclo de vida de servidor TCP
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy35
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy36
Princiacutepios de Controle de Congestionamento
Congestionamento bull informalmente ldquomuitas fontes enviando muitos dados muito rapidamente para a rede poder tratarrdquo
bull diferente de controle de fluxo bull manifestaccedilotildees
ndash perda de pacotes (esgotamento de buffers em roteadores)
ndash longos atrasos (enfileiramento nos buffers dos roteadores)
bull um dos 10 problemas mais importantes em redes
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy37
Causascustos de congestionamento cenaacuterio 1
bull dois remetentes dois receptores
bull um roteador buffers infinitos
bull sem retransmissatildeo
bull grandes retardos qdo congestionada
bull vazatildeo maacutexima alcanccedilaacutevel
unlimited shared output link buffers
Host A λ in original data
Host B
λ out
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy38
Causascustos de congestionamento cenaacuterio 2
bull Um roteador buffers finitos bull 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 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy39
r sempre (goodput) r retransmissatildeo ldquoperfeitardquo apenas com perdas
r 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
λ out R2
R2 λ in
λ out
b
R2
R2 λ in
λ out
a
R2
R2 λ in
λ out
c
R4
R3
ldquocustosrdquo de congestionamento r mais trabalho (retransmissatildeo) para dado ldquogoodputrdquo r retransmissotildees desnecessaacuterias enviadas muacuteltiplas coacutepias do pacote
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy40
Causascustos de congestionamento cenaacuterio 3
bull quatro remetentes bull caminhos com muacuteltiplos enlaces bull temporizaccedilatildeoretransmissatildeo
λ in
P o que acontece agrave medida que e crescem λ
in
finite shared output link buffers
Host A λ in original data
Host B
λ out
λ in original data plus retransmitted data
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy41
Causascustos de congestionamento cenaacuterio 3
Outro ldquocustordquo de congestionamento r quando pacote eacute descartado qq capacidade de transmissatildeo jaacute usada
(antes do descarte) para esse pacote foi desperdiccedilada
H o s t A
H o s t B
λ o u t
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy42
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim
bull natildeo tem realimentaccedilatildeo expliacutecita pela rede
bull congestionamento inferido a partir das perdas retardo observados pelo sistema terminal
bull abordagem usada pelo TCP
Controle de congestionamento com apoio da rede
bull roteadores realimentam os sistemas terminais ndash bit indicando congestionamento (SNA DECbit TCPIP ECN ATM)
ndash taxa expliacutecita p envio pelo remetente
Duas abordagens amplas para controle de congestionamento
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy43
Estudo de caso controle de congestionamento no ABR da ATM
ABR (available bit rate) bull ldquoserviccedilo elaacutesticordquo bull se caminho do remetente
ldquosubcarregadordquo ndash remetente deveria usar banda disponiacutevel
bull se caminho do remetente congestionado ndash remetente reduzido agrave taxa miacutenima garantida
ceacutelulas RM (resource management)
bull enviadas pelo remetente intercaladas com ceacutelulas de dados
bull bits na ceacutelula RM iniciados por comutadores (ldquoapoio da rederdquo) ndash bit NI natildeo aumente a taxa (congestionamento moderado)
ndash bit CI indicaccedilatildeo de congestionamento
bull ceacutelulas RM devolvidas ao remetente pelo receptor sem alteraccedilatildeo dos bits
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy44
Estudo de caso controle de congestionamento em ABR da ATM
bull Campo ER (explicit rate) de 2 bytes na ceacutelula RM ndash comutador congestionado pode diminuir valor ER na ceacutelula ndash taxa do remetente assim ajustada p menor valor possiacutevel entre os
comutadores do caminho bull bit EFCI em ceacutelulas de dados ligado por comutador congestionado
ndash se EFCI ligado na ceacutelula de dados antes da ceacutelula RM receptor liga bit CI na ceacutelula RM devolvida
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy45
Conteuacutedo do Capiacutetulo 3 bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 UDP Transporte natildeo orientado a conexatildeo
bull 34 Princiacutepios da transferecircncia confiaacutevel de dados
bull 35 Transporte orientado a conexatildeo TCP ndash transferecircncia confiaacutevel ndash controle de fluxo ndash gerenciamento de conexotildees
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy46
Controle de Congestionamento do TCP
bull controle fimshyashyfim (sem assistecircncia da rede)
bull transmissor limita a transmissatildeo LastByteSentshyLastByteAcked
le CongWin
bull Praticamente
bull CongWin eacute dinacircmica em funccedilatildeo do congestionamento percebido da rede
Como o transmissor percebe o congestionamento
bull evento de perda = estouro do temporizador ou 3 acks duplicados
bull transmissor TCP reduz a taxa (CongWin) apoacutes evento de perda
trecircs mecanismos ndash AIMD ndash partida lenta ndash conservador apoacutes eventos
de estouro de temporizaccedilatildeo
taxa = CongWin RTT Bytesseg
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy47
AIMD do TCP
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion window
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 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy48
Partida Lenta do TCP
bull No iniacutecio da conexatildeo CongWin = 1 MSS ndash Exemplo MSS = 500 bytes amp RTT = 200 mseg
ndash taxa inicial = 20 kbps
bull largura de banda disponiacutevel pode ser gtgt MSSRTT ndash eacute desejaacutevel um crescimento raacutepido ateacute uma taxa consideraacutevel
r No iniacutecio da conexatildeo aumenta a taxa exponencialmente ateacute o primeiro evento de perda
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy49
r No iniacutecio da conexatildeo aumenta a taxa
exponencialmente ateacute o primeiro evento de
perda m duplica CongWin a cada
RTT m atraveacutes do incremento da CongWin para cada ACK
recebido r Resumo taxa inicial eacute
baixa mas cresce rapidamente de forma
exponencial
TCP Partida lenta (mais) Estaccedilatildeo A
RTT
Estaccedilatildeo B
tempo
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy50
Refinamento bull Apoacutes 3 ACKs duplicados
ndash corta CongWin pela metade
ndash a janela depois cresce linearmente
bull Mas apoacutes estouro de temporizador ndash CongWin eacute reduzida a 1 MSS
ndash janela cresce exponencialmente
ndash 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 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy51
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 bull Limiar (Threshold) variaacutevel bull Com uma perda o limiar
passa a ser 12 da CongWin imediatamente anterior agrave perda
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy52
Resumo Controle de Congestionamento do TCP
bull Quando a CongWin estaacute abaixo do limiar transmissor estaacute na fase de iniacutecio lento janela cresce exponencialmente
bull Quando a CongWin estaacute acima do limiar transmissor estaacute na fase de evitar congestionamento janela cresce linearmente
bull Quando chegam ACKs triplicados Limiar passa a ser CongWin2 e CongWin passa ao valor do Limiar
bull Quando estoura o temporizador Limiar passa a ser CongWin2 e CongWin passa a ser 1 MSS
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy53
Controle de congestionamento do transmissor TCP
CongWin e Threshold natildeo se alteram
Incrementa contador de ACKs duplicados para o segmento que estaacute sendo reconhecido
qualquer ACK duplicado
Entra estado de ldquopartida lentardquo
Limiar = CongWin2 CongWin = 1 MSS Seta estado para ldquoPartida lentardquo
qualquer Estouro de temporizador
Recuperaccedilatildeo raacutepida implementa decrescimento multiplicativo CongWin natildeo cai abaixo de 1 MSS
Limiar = CongWin2 CongWin = Limiar Seta estado para ldquoEvitar Congestionamentordquo
qualquer Perda detectada por ACKs triplicados
Incremento aditivo resultando no incremento da CongWin de 1 MSS a cada RTT
CongWin = CongWin+MSS (MSSCongWin)
Evitar congestion amento
ACK recebido para dados ainda natildeo reconhecidos
Resulta na duplicaccedilatildeo da CongWin a cada RTT
CongWin = CongWin + MSS If (CongWin gt Limiar)
seta estado para ldquoEvitar congestionamentordquo
Partida lenta
ACK recebido para dados ainda natildeo reconhecidos
Comentaacuterio Accedilatildeo do Transmissor TCP Estado Evento
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy54
Vazatildeo (throughput) do TCP
bull Qual eacute a vazatildeo meacutedia do TCP em funccedilatildeo do tamanho da janela e do RTT ndash Ignore a partida lenta
bull Seja W o tamanho da janela quando ocorre a perda
bull Quando a janela eacute W a vazatildeo eacute WRTT bull Imediatamente apoacutes a perda janela cai a W2 vazatildeo cai para W2RTT
bull Vazatildeo meacutedia = 075 WRTT
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy55
Futuro do TCP
bull Exemplo segmentos de 1500 bytes RTT de 100ms deseja vazatildeo de 10 Gbps
bull Requer janela de W = 83333 segmentos em tracircnsito bull Vazatildeo em termos de taxa de perdas
bull L = 210 shy10 Taxa de perdas demasiado baixa bull Satildeo necessaacuterias novas versotildees do TCP para altas velocidades
L RTT MSS sdot 22 1
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy56
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
Roteador gargalo
capacidade R
TCP conexatildeo 2
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy57
Por quecirc TCP eacute justo Duas sessotildees concorrentes bull Aumento aditivo daacute gradiente de 1 enquanto vazatildeo aumenta bull decremento multiplicativo diminui vazatildeo proporcionalmente
R
R
compartilhamento igual da banda
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
evitar congestionamento aumento aditivo perda diminui janela por fator de 2
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy58
Justeza (mais) Justeza e UDP bull Apls multimiacutedia
frequumlentemente natildeo usam TCP ndash natildeo desperdiccedilam taxa
regulada pelo controle de congestionamento
bull Preferem usar o UDP ndash Injeta aacuteudioviacutedeo a uma
taxa constante tolera perda de pacotes
bull Aacuterea de Pesquisa amigaacutevel ao TCP (TCP friendly)
Justeza e conexotildees TCP em paralelo
bull nada impede que as apls abram conexotildees paralelas entre 2 hosts
bull Os browsers Web fazem isto bull Exemplo canal com taxa R
compartilhado por 9 conexotildees ndash nova apl pede 1 TCP recebe
taxa R10 ndash nova apl pede 11 TCPs recebe
taxa R2
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy59
TCP modelagem de latecircncia
P Quanto tempo leva para receber um objeto de um servidor WWW depois de enviar o pedido
bull Estabelecimento de conexatildeo TCP
bull retardo de transferecircncia de dados
Notaccedilatildeo suposiccedilotildees bull Supomos um enlace entre cliente e
servidor de taxa R bull Supomos janela de
congestionamento fixo W segmentos
bull S MSS (bits) bull O tamanho do objeto (bits) bull sem retransmissotildees (sem perdas
sem erros) Dois casos a considerar r WSR gt RTT + SR ACK do primeiro segmento na janela
chega antes de enviar todos dados na janela r WSR lt RTT + SR aguarda ACK depois de enviar todos
os dados na janela
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy60
Janela de congestionamento fixa (1)
Primeiro caso WSR 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 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy61
Janela de congestionamento fixa (2)
Segundo caso bull 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 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy62
TCP modelagem de latecircncia partida lenta bull Agora supomos que a janela cresce agrave la partida lenta bull Mostramos que a latecircncia de um objeto de tamanho O eacute
R S
R S RTT P
R O RTT Latecircncia P ) 1 2 ( 2 minus minus
+ + + =
onde P eacute o nuacutemero de vezes que o TCP para no servidor
1 min minus = K Q P
shy onde Q eacute o nuacutemero de vezes que o servidor pararia se o objeto fosse de tamanho infinito
shy e K eacute o nuacutemero de janelas que cobrem o objeto
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy63
TCP modelagem de latecircncia partida lenta (cont)
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
Exemplo bull OS = 15 segmentos bull K = 4 janelas bull Q = 2 bull P = minK-1Q = 2
Servidor ocioso P=2 unidades de tempo
Componentes da latecircncia bull 2 RTTs para estab conexatildeo e pedido bull OR para transmitir o objeto bull tempo ocioso do servidor devido agrave partida lenta
Servidor ocioso P = minK-1Q unidades de tempo
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy64
TCP modelagem de latecircncia partida lenta (cont)
R S
R S RTT P RTT
R O
R S RTT
R S RTT
R O
o Tempoparad RTT R O
P
P
k
k
P
p p
) 1 2 ( 2
2 2
2 latecircncia
1
1
1
minus minus
+ + + =
minus + + + =
+ + =
sum
sum
=
minus
=
janela eacutesima a apoacutes parado tempo
2 1
minus
=
minus +
+ minus
k R S RTT
R S k
entos reconhecim os receba servidor o que ateacute
segmentos enviar a comeccedila servidor o que desde tempo = + RTT R S
janela eacutesima shy k a r transmiti para tempo 2 1 = minus
R S k
RTT
initiate TCP connection
request object
first window = SR
second window = 2SR
third window = 4SR
fourth window = 8SR
complete transmission object
delivered
time at client
time at server
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy65
Modelagem de Latecircncia do TCP (4)
+ =
+ ge =
ge minus =
ge + + + =
ge + + + = minus
minus
) 1 ( log
) 1 ( log min
1 2 min
2 2 2 min 2 2 2 min
2
2
1 1 0
1 1 0
S O
S O k k
S O k
S O k O S S S k K
k
k
k
L
L
Caacutelculo de Q nuacutemero de intervalos ociosos para um objeto de tamanho infinito eacute semelhante (veja exerciacutecio)
Lembre que K = nuacutemero de janelas que cobrem objeto Como podemos calcular K
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy66
Modelagem do HTTP bull Assuma que a paacutegina Web eacute composta por
ndash 1 paacutegina base HTML (de tamanho O bits) ndash M imagens (cada uma de tamanho O bits)
bull HTTP natildeoshypersistente ndash M+1 connexotildees TCP em seacuterie ndash Tempo de resposta = (M+1)OR + (M+1)2RTT + soma dos tempos ociosos
bull HTTP persistente ndash 2 RTT para pedir e receber arquivo HTML ndash 1 RTT para pedir e receber M imagens ndash Tempo de resposta = (M+1)OR + 3RTT + soma dos tempos ociosos
bull HTTP natildeoshypersistente com X conexotildees paralelas ndash Suponha que MX seja um inteiro ndash 1 conexatildeo TCP para arquivo base ndash Conjuntos de MX conexotildees paralelas para as imagens ndash Tempo de resposta = (M+1)OR + (MX + 1)2RTT + soma dos tempos ociosos
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy67
0 2 4 6 8 10 12 14 16 18 20
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy persistent
Tempo de resposta do HTTP RTT = 100 mseg O = 5 Kbytes M=10 and X=5
Para largura de banda baixa os tempos de 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 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy68
0
10
20
30
40
50
60
70
28 Kbps
100 Kbps
1 Mbps
10 Mbps
nonshypersistent
persistent
parallel nonshy 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 lenta Conexotildees 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 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede
3 Camada de Transporte 3bshy69
Capiacutetulo 3 Resumo
bull Princiacutepios atraacutes dos serviccedilos da camada de transporte ndash multiplexaccedilatildeo demultiplexaccedilatildeo
ndash transferecircncia confiaacutevel de dados
ndash controle de fluxo ndash controle de congestionamento
bull instanciaccedilatildeo e implementaccedilatildeo na Internet ndash UDP ndash TCP
Proacuteximo capiacutetulo bull saiacutemos da ldquobordardquo da
rede (camadas de aplicaccedilatildeo e transporte)
bull entramos no ldquonuacutecleordquoda rede