Upload
internet
View
106
Download
1
Embed Size (px)
Citation preview
Capiacutetulo3
Redes de computadores e a InternetRedes de computadores e a Internet
Camadade
transporte
3
3 - 2copy 2005 by Pearson Education
Objetivos do capiacutetulo Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte
Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Aprender sobre os protocolos de transporte na Internet UDP transporte natildeo orientado agrave conexatildeo TCP transporte orientado agrave conexatildeo Controle de congestionamento do TCP
Camada de transporte
3
3 - 3copy 2005 by Pearson Education
Camada de transporte
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
3
3 - 4copy 2005 by Pearson Education
Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
Os protocolos de transporte satildeo executados nos sistemas finais
Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo
Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP
Protocolos e serviccedilos de transporte
3
3 - 5copy 2005 by Pearson Education
Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos
Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
3
3 - 6copy 2005 by Pearson Education
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
3
3 - 7copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 8copy 2005 by Pearson Education
Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidos ao socket correto
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 9copy 2005 by Pearson Education
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
3
3 - 10copy 2005 by Pearson Education
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 2copy 2005 by Pearson Education
Objetivos do capiacutetulo Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte
Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Aprender sobre os protocolos de transporte na Internet UDP transporte natildeo orientado agrave conexatildeo TCP transporte orientado agrave conexatildeo Controle de congestionamento do TCP
Camada de transporte
3
3 - 3copy 2005 by Pearson Education
Camada de transporte
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
3
3 - 4copy 2005 by Pearson Education
Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
Os protocolos de transporte satildeo executados nos sistemas finais
Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo
Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP
Protocolos e serviccedilos de transporte
3
3 - 5copy 2005 by Pearson Education
Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos
Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
3
3 - 6copy 2005 by Pearson Education
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
3
3 - 7copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 8copy 2005 by Pearson Education
Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidos ao socket correto
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 9copy 2005 by Pearson Education
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
3
3 - 10copy 2005 by Pearson Education
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 3copy 2005 by Pearson Education
Camada de transporte
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
3
3 - 4copy 2005 by Pearson Education
Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
Os protocolos de transporte satildeo executados nos sistemas finais
Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo
Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP
Protocolos e serviccedilos de transporte
3
3 - 5copy 2005 by Pearson Education
Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos
Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
3
3 - 6copy 2005 by Pearson Education
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
3
3 - 7copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 8copy 2005 by Pearson Education
Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidos ao socket correto
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 9copy 2005 by Pearson Education
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
3
3 - 10copy 2005 by Pearson Education
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 4copy 2005 by Pearson Education
Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
Os protocolos de transporte satildeo executados nos sistemas finais
Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo
Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP
Protocolos e serviccedilos de transporte
3
3 - 5copy 2005 by Pearson Education
Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos
Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
3
3 - 6copy 2005 by Pearson Education
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
3
3 - 7copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 8copy 2005 by Pearson Education
Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidos ao socket correto
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 9copy 2005 by Pearson Education
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
3
3 - 10copy 2005 by Pearson Education
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 5copy 2005 by Pearson Education
Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos
Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
3
3 - 6copy 2005 by Pearson Education
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
3
3 - 7copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 8copy 2005 by Pearson Education
Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidos ao socket correto
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 9copy 2005 by Pearson Education
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
3
3 - 10copy 2005 by Pearson Education
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 6copy 2005 by Pearson Education
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
3
3 - 7copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 8copy 2005 by Pearson Education
Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidos ao socket correto
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 9copy 2005 by Pearson Education
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
3
3 - 10copy 2005 by Pearson Education
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 7copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 8copy 2005 by Pearson Education
Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidos ao socket correto
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 9copy 2005 by Pearson Education
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
3
3 - 10copy 2005 by Pearson Education
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 8copy 2005 by Pearson Education
Demultiplexaccedilatildeo no hospedeiro receptorMultiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidos ao socket correto
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 9copy 2005 by Pearson Education
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
3
3 - 10copy 2005 by Pearson Education
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 9copy 2005 by Pearson Education
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
3
3 - 10copy 2005 by Pearson Education
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 10copy 2005 by Pearson Education
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 11copy 2005 by Pearson Education
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP fornece o ldquoendereccedilo retornordquo0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 12copy 2005 by Pearson Education
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 13copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 14copy 2005 by Pearson Education
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 15copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 16copy 2005 by Pearson Education
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC 768]
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 17copy 2005 by Pearson Education
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 18copy 2005 by Pearson Education
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas
depoishellip
UDP checksum
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 19copy 2005 by Pearson Education
Note que Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
Exemplo adicione dois inteiros de 16 bits
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
Exemplo Internet checksum
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 20copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 21copy 2005 by Pearson Education
Importante nas camadas de aplicaccedilatildeo transporte e enlace
Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 22copy 2005 by Pearson Education
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex pela aplicaccedilatildeo) Passa dados para entregar agrave camada superior receptora
udt_send() chamada pela entidade de transporte para transferir pacotes
para o receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega ao lado receptor do canal
deliver_data() chamada pela entidade de transporte para entregar
dados para cima
Transferecircncia confiaacutevel o ponto de partida
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 23copy 2005 by Pearson Education
Etapas
Desenvolver incrementalmente o transmissor e o receptor de um protocolo confiaacutevel de transferecircncia de dados (rdt)
Considerar apenas transferecircncias de dados unidirecionais Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
Usar maacutequinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor
estado1
estado2
evento causando transiccedilatildeo de estadosaccedilotildees tomadas na transiccedilatildeo de estadoestado quando neste
ldquoestadordquo o proacuteximo estado fica unicamente
determinado pelo proacuteximo evento
eventoaccedilotildees
Transferecircncia confiaacutevel o ponto de partida
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 24copy 2005 by Pearson Education
Canal de transmissatildeo perfeitamente confiaacutevel Natildeo haacute erros de bits Natildeo haacute perdas de pacotes
FSMs separadas para transmissor e receptor Transmissor envia dados para o canal subjacente Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canais confiaacuteveis
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 25copy 2005 by Pearson Education
rdt20 canal com erros de bit
Canal subjacente pode trocar valores dos bits num pacote Checksum para detectar erros de bits
A questatildeo como recuperar esses erros Reconhecimentos (ACKs) receptor avisa explicitamente ao
transmissor que o pacote foi recebido corretamente Reconhecimentos negativos (NAKs) receptor avisa
explicitamente ao transmissor que o pacote tem erros Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
Novos mecanismos no rdt20 (aleacutem do rdt10) Detecccedilatildeo de erros Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 26copy 2005 by Pearson Education
rdt20 especificaccedilatildeo FSM
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 27copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 operaccedilatildeo com ausecircncia de erros
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 28copy 2005 by Pearson Education
aguarda chamada de
cima
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
aguarda ACK ou
NAK
aguarda chamada de
baixo
rdt_send(data)
rdt20 cenaacuterio de erro
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 29copy 2005 by Pearson Education
O que acontece se o ACKNAK eacute corrompido Transmissor natildeo sabe o que aconteceu no receptor Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacote Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Pare e espereTransmissor envia um pacotee entatildeo espera pela resposta do
receptor
rdt20 tem um problema fatal
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 30copy 2005 by Pearson Education
rdt21 transmissor trata ACKNAKs perdidos
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 31copy 2005 by Pearson Education
rdt21 receptor trata ACKNAKs perdidos
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 32copy 2005 by Pearson Education
Transmissor Adiciona nuacutemero de sequumlecircncia ao pacote Dois nuacutemeros (0 e 1) bastam Por quecirc Deve verificar se os ACKNAK recebidos estatildeo corrompidos Duas vezes o nuacutemero de estados
O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero de sequumlecircncia 0 ou 1
Receptor Deve verificar se o pacote recebido eacute duplicado
Estado indica se o pacote 0 ou 1 eacute esperado Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido
pelo transmissor
rdt21 discussatildeo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 33copy 2005 by Pearson Education
Mesma funcionalidade do rdt21 usando somente ACKs Em vez de enviar NAK o receptor envia ACK para o uacuteltimo
pacote recebido sem erro Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia
do pacote sendo reconhecido
ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 34copy 2005 by Pearson Education
aguarda chamada 0
de cima
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
aguarda ACK
0
fragmento FSMdo transmissor
aguarda0 de baixo
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
fragmento FSMdo receptor
rdt22 fragmentos do transmissor e do receptor
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 35copy 2005 by Pearson Education
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dados aos ACKs) Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACK Retransmite se nenhum ACK for recebido nesse tempo Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido) Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratam com isso Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendo reconhecido Exige um temporizador decrescente
rdt30 canais com erros e perdas
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 36copy 2005 by Pearson Education
Transmissor rdt30
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 37copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 38copy 2005 by Pearson Education
rdt30 em accedilatildeo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 39copy 2005 by Pearson Education
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupado
Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal De 1 Gbps O protocolo de rede limita o uso dos recursos fiacutesicos
U sender =
008 30008
= 000027 microseconds
L R
RTT + L R =
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
rdt30 funciona mas o desempenho eacute sofriacutevel Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho do rdt30
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 40copy 2005 by Pearson Education
rdt30 operaccedilatildeo pare e espere
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 41copy 2005 by Pearson Education
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos Faixa de nuacutemeros de sequumlecircncia deve ser aumentada Armazenamento no transmissor eou no receptor
Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolos com paralelismo (pipelining)
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 42copy 2005 by Pearson Education
U sender =
024 30008
= 00008 microseconds
3 L R
RTT + L R =
Pipelining aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 43copy 2005 by Pearson Education
Transmissor Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo Pode receber ACKs duplicados (veja receptor)
Temporizador para cada pacote enviado e natildeo confirmado Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que
estejam dentro da janela
Go-Back-N
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 44copy 2005 by Pearson Education
GBN FSM estendida para o transmissor
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 45copy 2005 by Pearson Education
Somente ACK sempre envia ACK para pacotes corretamente recebidos com o mais alto nuacutemero de sequumlecircncia em ordem Pode gerar ACKs duplicados Precisa lembrar apenas do expectedseqnum
Pacotes fora de ordem Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeo Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
GBN FSM estendida para o receptor
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 46copy 2005 by Pearson Education
GBN em accedilatildeo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 47copy 2005 by Pearson Education
Receptor reconhece individualmente todos os pacotes recebidos corretamente Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido Transmissor temporiza cada pacote natildeo reconhecido
Janela de transmissatildeo N nuacutemeros de sequumlecircncia consecutivos Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 48copy 2005 by Pearson Education
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 49copy 2005 by Pearson Education
TRANSMISSORDados da camada superior Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacoteTempo de confirmaccedilatildeo(n) Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N] Marca pacote n como recebido Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o proacuteximo nuacutemero
de sequumlecircncia natildeo reconhecido
RECEPTORPacote n em [rcvbase rcvbase + N -1] Envia ACK(n) Fora de ordem armazena Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila janela para
o proacuteximo pacote ainda natildeo recebidopkt n em [rcvbase-Nrcvbase-1] ACK(n)Caso contraacuterio Ignora
Retransmissatildeo seletiva
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 50copy 2005 by Pearson Education
Retransmissatildeo seletiva em accedilatildeo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 51copy 2005 by Pearson Education
Exemplo Sequumlecircncias 0 1 2 3
Tamanho da janela = 3
Receptor natildeo vecirc diferenccedila nos dois cenaacuterios
Incorretamente passa dados duplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilo de numeraccedilatildeo sequumlencial e o tamanho da janela
Retransmissatildeo seletiva dilema
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 52copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 53copy 2005 by Pearson Education
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream
Natildeo haacute contornos de mensagens Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo)
Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo
MSS maximum segment size Orientado agrave conexatildeo
Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados
Controle de fluxo Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 54copy 2005 by Pearson Education
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 55copy 2005 by Pearson Education
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte
nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte
esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 56copy 2005 by Pearson Education
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia Muito curto temporizaccedilatildeo prematura
Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 57copy 2005 by Pearson Education
EstimatedRTT = (1-)EstimatedRTT + SampleRTT
Meacutedia moacutevel com peso exponencial Influecircncia de uma dada amostra decresce de forma exponencial Valor tiacutepico = 0125
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 58copy 2005 by Pearson Education
Exemplos de estimativa do RTT
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 59copy 2005 by Pearson Education
Definindo a temporizaccedilatildeo EstimatedRTT mais ldquomargem de seguranccedilardquo
Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(typically = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 60copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 61copy 2005 by Pearson Education
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 62copy 2005 by Pearson Education
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense
no temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo
confirmados Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 63copy 2005 by Pearson Education
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event dado recebido da aplicaccedilatildeo acima cria segmento TCP com no de sequacuteecircncia NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event tempo de confirmaccedilatildeo do temporizador retransmit not-yet-acknowledged segment with smallest sequence number start timer event ACK recebido com valor do campo de ACK do y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer end of loop forever
Comentaacuterio SendBase-1
uacuteltimo byte do ACK cumulativo
Exemplo SendBase-1
= 71 y= 73 entatildeo o receptor deseja73+ y gt SendBase entatildeoo novo dado eacute confirmado
Transmissor TCP (simplificado)
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 64copy 2005 by Pearson Education
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 65copy 2005 by Pearson Education
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 66copy 2005 by Pearson Education
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 67copy 2005 by Pearson Education
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 68copy 2005 by Pearson Education
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
Algoritmo de retransmissatildeo raacutepida
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 69copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 70copy 2005 by Pearson Education
lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 71copy 2005 by Pearson Education
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 72copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 73copy 2005 by Pearson Education
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number) Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 74copy 2005 by Pearson Education
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 75copy 2005 by Pearson Education
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 76copy 2005 by Pearson Education
Estados do cliente Estados do servidor
Gerenciamento de conexatildeo TCP
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 77copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 78copy 2005 by Pearson Education
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 79copy 2005 by Pearson Education
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 80copy 2005 by Pearson Education
Um roteador buffers finitos Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 81copy 2005 by Pearson Education
Sempre vale (traacutefego bom) ldquoperfeitardquo retransmissatildeo somente quando haacute perdas Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
in
out
=
in
out
gt
inout
ldquocustosrdquo do congestionamento Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmo pacote
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 82copy 2005 by Pearson Education
Quatro transmissores Caminhos com muacuteltiplos saltos Temporizaccedilotildeesretransmissotildees
in
P o que acontece quando e
aumentam
in
Causascustos do congestionamento cenaacuterio 3
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 83copy 2005 by Pearson Education
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
hospedeiro A
hospedeiro B
o
u
t
Causascustos do congestionamento cenaacuterio 3
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 84copy 2005 by Pearson Education
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos
observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM)
Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 85copy 2005 by Pearson Education
ABR available bit rateldquoserviccedilo elaacutesticordquo Se o caminho do transmissor estaacute pouco usado
Transmissor pode usar a banda disponiacutevel Se o caminho do transmissor estaacute congestionado
Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) Enviadas pelo transmissor entremeadas com as ceacutelulas de dados Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela
rederdquo) NI bit natildeo aumenta a taxa (congestionamento leve) CI bit indicaccedilatildeo de congestionamento
As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits de indicaccedilatildeo intactos
Estudo de caso controle de congestionamento do serviccedilo ATM ABR
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 86copy 2005 by Pearson Education
Campo ER (explicit rate) de dois bytes nas ceacutelulas RM Switch congestionado pode reduzir o valor de ER nas ceacutelulas O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada no caminho
Bit EFCI nas ceacutelulas de dados marcado como 1 pelos switches congestionados Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado o receptor marca o bit CI na ceacutelula RM devolvida
Estudo de caso controle de congestionamento do servidor do serviccedilo ATM ABR
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 87copy 2005 by Pearson Education
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 88copy 2005 by Pearson Education
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 89copy 2005 by Pearson Education
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perdaAumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 90copy 2005 by Pearson Education
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 91copy 2005 by Pearson Education
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 92copy 2005 by Pearson Education
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 93copy 2005 by Pearson Education
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 94copy 2005 by Pearson Education
Quando CongWin estaacute abaixo do limite (Threshold) o transmissor em fase de slow-start a janela cresce exponencialmente
Quando CongWin estaacute acima do limite (Threshold o transmissor em fase de congestion-avoidance a janela cresce linearmente
Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacute ajustado em CongWin2 e CongWin eacute ajustado para Threshold
Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado para CongWin2 e o CongWin eacute ajustado para 1 MSS
Resumo controle de congestionamento TCP
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 95copy 2005 by Pearson Education
Evento Estado Accedilatildeo do transmissor TCP
Comentaacuterio
ACK recebido para dado previamente natildeo-confirmado
partida lenta (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) ajusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Resulta em dobrar o CongWin a cada RTT
ACK recebido para dado previamente natildeo-confirmado
prevenccedilatildeo de congestiona-mento (CA)
CongWin = CongWin + MSS (MSSCongWin)
Aumento aditivo resulta no aumento do CongWin em 1 MSS a cada RTT
Evento de perda detectado por trecircs ACKs duplicados
SS or CA Threshold = CongWin2 CongWin = ThresholdAjusta estado para ldquoprevenccedilatildeo de congestionamentordquo
Recuperacao rapida implementando reduccedilatildeo multiplicativa o CongWin natildeo cairaacute abaixo de 1 MSS
Tempo de confirmaccedilatildeo
SS or CA Threshold = CongWin2 CongWin = 1 MSSAjustar estado para ldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador de ACK duplicado para o segmento que estaacute sendo confirmado
CongWin e Threshold natildeo mudam
TCP sender congestion control
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 96copy 2005 by Pearson Education
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 97copy 2005 by Pearson Education
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L = 210-10 Uau Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 98copy 2005 by Pearson Education
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 99copy 2005 by Pearson Education
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo
aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 100copy 2005 by Pearson Education
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 101copy 2005 by Pearson Education
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 102copy 2005 by Pearson Education
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
atraso = 2RTT + OR
Janela de congestionamento fixa (1)
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 103copy 2005 by Pearson Education
Segundo caso WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valor da janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Janela de congestionamento fixa (2)
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 104copy 2005 by Pearson Education
Agora suponha que a janela cresce de acordo com os procedimentos da fase partida lenta
Vamos mostrar que a latecircncia de um objeto de tamanho O eacute
em que P eacute o nuacutemero de vezes que o TCP fica bloqueado no servidor
Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado se o objeto fosse de tamanho infinito
E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
SRTTP
R
ORTTLatency P )12(2
1min KQP
TCP Modelagem de latecircncia partida lenta (1)
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 105copy 2005 by Pearson Education
Componentes do atraso 2 RTT para estabelecimento de conexatildeo e requisiccedilatildeo OR para transmitir um objeto Servidor com periacuteodos inativos devido agrave partida lenta
Servidor inativo P = minK-1Q vezesExemplo OS = 15 segmentos K = 4 janelas Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
TCP modelagem de latecircncia partida lenta (2)
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 106copy 2005 by Pearson Education
RS
RS
RTTPRTTRO
RS
RTTRS
RTTRO
TempoBloqueioRTTRO
P
kP
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela 2 1
RSRTT
RS k =uacuteucirc
ugraveecirceumleacute -+
+-
ateacute quando o servidor recebe reconhecimento
tempo quando o servidor inicia o envio do segmento
=+RTTRS
tempo para enviar a k-eacutesima janela2 1 =-RSk
TCP modelagem de latecircncia partida lenta (3)
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 107copy 2005 by Pearson Education
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 108copy 2005 by Pearson Education
Presuma que uma paacutegina Web consista em 1 paacutegina HTML de base (de tamanho O bit) M imagens (cada uma de tamanho O bit)
HTTP natildeo persistente M + 1 conexotildees TCP nos servidores Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma
dos periacuteodos de inatividade
HTTP persistente 2 RTT para requisitar e receber o arquivo HTML de base 1 RTT para requisitar e receber M imagens Tempo de resposta = (M + 1)OR + 3RTT + soma dos
periacuteodos de inatividade
HTTP natildeo persistente com X conexotildees paralelas Suponha o inteiro MX 1 conexatildeo TCP para o arquivo de base MX ajusta as conexatildeo paralelas para imagens Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma
dos periacuteodos de inatividade
Modelagem HTTP
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 109copy 2005 by Pearson Education
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelo tempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
Tempo de resposta HTTP (em segundos)
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 110copy 2005 by Pearson Education
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
RTT =1 seg O = 5 Kbytes M=10 and X=5
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhora Importante particularmente em redes com produto banda atraso grande
Tempo de resposta HTTP (em segundos)
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
3
3 - 111copy 2005 by Pearson Education
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo